Don't pass NULL to soup_message_headers_replace(), call
authorDan Winship <danw@src.gnome.org>
Mon, 12 Jan 2009 22:21:50 +0000 (22:21 +0000)
committerDan Winship <danw@src.gnome.org>
Mon, 12 Jan 2009 22:21:50 +0000 (22:21 +0000)
* libsoup/soup-cookie-jar.c (request_started): Don't pass NULL to
soup_message_headers_replace(), call soup_message_headers_remove()
if there are no cookies. Likely fix for webkit bug #23240.

* libsoup/soup-message-headers.c (soup_message_headers_append):
g_return_if_fail (value != NULL)

svn path=/trunk/; revision=1227

ChangeLog
libsoup/soup-cookie-jar.c
libsoup/soup-message-headers.c

index 97fb2de..5248dea 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2009-01-12  Dan Winship  <danw@gnome.org>
+
+       * libsoup/soup-cookie-jar.c (request_started): Don't pass NULL to
+       soup_message_headers_replace(), call soup_message_headers_remove()
+       if there are no cookies. Likely fix for webkit bug #23240.
+
+       * libsoup/soup-message-headers.c (soup_message_headers_append):
+       g_return_if_fail (value != NULL)
+
 2009-01-05  Dan Winship  <danw@gnome.org>
 
        2.25.4
index 243c215..f536ebc 100644 (file)
@@ -430,9 +430,12 @@ request_started (SoupSessionFeature *feature, SoupSession *session,
        char *cookies;
 
        cookies = soup_cookie_jar_get_cookies (jar, soup_message_get_uri (msg), TRUE);
-       soup_message_headers_replace (msg->request_headers,
-                                     "Cookie", cookies);
-       g_free (cookies);
+       if (cookies) {
+               soup_message_headers_replace (msg->request_headers,
+                                             "Cookie", cookies);
+               g_free (cookies);
+       } else
+               soup_message_headers_remove (msg->request_headers, "Cookie");
 }
 
 static void
index 4ee5a86..9f31dc7 100644 (file)
@@ -155,6 +155,9 @@ soup_message_headers_append (SoupMessageHeaders *hdrs,
        SoupHeader header;
        SoupHeaderSetter setter;
 
+       g_return_if_fail (name != NULL);
+       g_return_if_fail (value != NULL);
+
        header.name = intern_header_name (name, &setter);
        header.value = g_strdup (value);
        g_array_append_val (hdrs->array, header);
@@ -209,6 +212,8 @@ soup_message_headers_remove (SoupMessageHeaders *hdrs, const char *name)
        SoupHeaderSetter setter;
        int index;
 
+       g_return_if_fail (name != NULL);
+
        name = intern_header_name (name, &setter);
        while ((index = find_header (hdr_array, name, 0)) != -1) {
                g_free (hdr_array[index].value);
@@ -243,6 +248,8 @@ soup_message_headers_get (SoupMessageHeaders *hdrs, const char *name)
        char *value;
        int index, i;
 
+       g_return_val_if_fail (name != NULL, NULL);
+
        name = intern_header_name (name, NULL);
        if (hdrs->concat) {
                value = g_hash_table_lookup (hdrs->concat, name);