diff options
author | Jonathon Jongsma <jonathon@quotidian.org> | 2010-12-07 23:09:31 -0600 |
---|---|---|
committer | Jonathon Jongsma <jonathon@quotidian.org> | 2010-12-10 13:58:57 -0600 |
commit | 00561929c2a61bd204f98ba0dcd2925219534104 (patch) | |
tree | a99ff2985cc6663ecfc44e0e7f7347b8e9428948 | |
parent | 6cd40fbf575c2211c7382b79042b561ac43dd64f (diff) | |
download | libsoup-00561929c2a61bd204f98ba0dcd2925219534104.tar.gz |
Fix leak when processing the set cookie header
Valgrind trace:
==4617== 401 (96 direct, 305 indirect) bytes in 2 blocks are definitely lost in loss record 15,500 of 16,590
==4617== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==4617== by 0x103D73AA: g_malloc (gmem.c:164)
==4617== by 0x103F0EB4: g_slice_alloc (gslice.c:842)
==4617== by 0x103F0F0C: g_slice_alloc0 (gslice.c:854)
==4617== by 0xE1CCD04: parse_one_cookie (soup-cookie.c:218)
==4617== by 0xE1CD2B3: soup_cookies_from_response (soup-cookie.c:763)
==4617== by 0xE1CE332: process_set_cookie_header (soup-cookie-jar.c:562)
==4617== by 0xFB4AC36: g_cclosure_marshal_VOID__VOID (gmarshal.c:79)
==4617== by 0xFB2F59E: g_closure_invoke (gclosure.c:766)
==4617== by 0xFB4A2B1: signal_emit_unlocked_R (gsignal.c:3252)
==4617== by 0xFB490EE: g_signal_emit_valist (gsignal.c:2983)
==4617== by 0xFB4966C: g_signal_emit (gsignal.c:3040)
==4617== by 0xE1DA0DF: io_read (soup-message-io.c:903)
https://bugzilla.gnome.org/show_bug.cgi?id=636741
-rw-r--r-- | libsoup/soup-cookie-jar.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/libsoup/soup-cookie-jar.c b/libsoup/soup-cookie-jar.c index 64afd9db..adb50ec8 100644 --- a/libsoup/soup-cookie-jar.c +++ b/libsoup/soup-cookie-jar.c @@ -563,11 +563,8 @@ process_set_cookie_header (SoupMessage *msg, gpointer user_data) for (nc = new_cookies; nc; nc = nc->next) { SoupURI *first_party = soup_message_get_first_party (msg); - if (first_party == NULL && - priv->accept_policy == SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY) - continue; /* Can't check anything */ - if ((priv->accept_policy == SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY && + first_party != NULL && soup_cookie_domain_matches (nc->data, first_party->host)) || priv->accept_policy == SOUP_COOKIE_JAR_ACCEPT_ALWAYS) soup_cookie_jar_add_cookie (jar, nc->data); |