]> spindle.queued.net Git - midori/commitdiff
Only strip referrer from valid Soup URI
authorChristian Dywan <christian@twotoasts.de>
Tue, 3 Jan 2012 22:47:11 +0000 (23:47 +0100)
committerChristian Dywan <christian@twotoasts.de>
Tue, 3 Jan 2012 22:47:11 +0000 (23:47 +0100)
Fixes: https://bugs.launchpad.net/midori/+bug/909415
midori/main.c

index 3800457e0a890fce6bd0ec4f987b65d6302f15a4..e7843d12a600350cf68338e9ce06c96386159706 100644 (file)
@@ -958,16 +958,19 @@ midori_soup_session_settings_accept_language_cb (SoupSession*       session,
         if (referer && destination && !strstr (referer, destination->host))
         {
             SoupURI* stripped_uri = soup_uri_new (referer);
-            gchar* stripped_referer;
-            soup_uri_set_path (stripped_uri, NULL);
-            soup_uri_set_query (stripped_uri, NULL);
-            stripped_referer = soup_uri_to_string (stripped_uri, FALSE);
-            soup_uri_free (stripped_uri);
-            if (g_getenv ("MIDORI_SOUP_DEBUG"))
-                g_message ("Referer stripped");
-            soup_message_headers_replace (msg->request_headers, "Referer",
-                                          stripped_referer);
-            g_free (stripped_referer);
+            if (stripped_uri != NULL)
+            {
+                gchar* stripped_referer;
+                soup_uri_set_path (stripped_uri, NULL);
+                soup_uri_set_query (stripped_uri, NULL);
+                stripped_referer = soup_uri_to_string (stripped_uri, FALSE);
+                soup_uri_free (stripped_uri);
+                if (g_getenv ("MIDORI_SOUP_DEBUG"))
+                    g_message ("Referer %s stripped to %s", referer, stripped_referer);
+                soup_message_headers_replace (msg->request_headers, "Referer",
+                                              stripped_referer);
+                g_free (stripped_referer);
+            }
         }
     }
 }