From 3013bb6b1c8e63e46ed0324eddffa6c54228acd7 Mon Sep 17 00:00:00 2001 From: Jay Satiro Date: Wed, 3 Jun 2015 21:48:47 -0400 Subject: cookie: Stop exporting any-domain cookies Prior to this change any-domain cookies (cookies without a domain that are sent to any domain) were exported with domain name "unknown". Bug: https://github.com/bagder/curl/issues/292 --- docs/examples/cookie_interface.c | 7 ++++++- docs/libcurl/opts/CURLOPT_COOKIELIST.3 | 3 +++ lib/cookie.c | 5 ++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/docs/examples/cookie_interface.c b/docs/examples/cookie_interface.c index 2e7c66db2..28ee7817c 100644 --- a/docs/examples/cookie_interface.c +++ b/docs/examples/cookie_interface.c @@ -96,7 +96,12 @@ main(void) return 1; } - /* HTTP-header style cookie */ + /* HTTP-header style cookie. If you use the Set-Cookie format and don't + specify a domain then the cookie is sent for any domain and will not be + modified, likely not what you intended. Starting in 7.43.0 any-domain + cookies will not be exported either. For more information refer to the + CURLOPT_COOKIELIST documentation. + */ snprintf(nline, sizeof(nline), "Set-Cookie: OLD_PREF=3d141414bf4209321; " "expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com"); diff --git a/docs/libcurl/opts/CURLOPT_COOKIELIST.3 b/docs/libcurl/opts/CURLOPT_COOKIELIST.3 index 1058936c7..937c79db8 100644 --- a/docs/libcurl/opts/CURLOPT_COOKIELIST.3 +++ b/docs/libcurl/opts/CURLOPT_COOKIELIST.3 @@ -43,6 +43,9 @@ transfer to that server, likely not what you intended. Either set a domain in Set-Cookie (doing that will include sub domains) or use the Netscape format as shown in EXAMPLE. +Starting in 7.43.0 the aforementioned any-domain cookies will not appear in the +lists exported by \fICURLINFO_COOKIELIST(3)\fP and \fICURLOPT_COOKIEJAR(3)\fP. + Additionally, there are commands available that perform actions if you pass in these exact strings: .IP ALL diff --git a/lib/cookie.c b/lib/cookie.c index fd7ed4168..94f2a8b85 100644 --- a/lib/cookie.c +++ b/lib/cookie.c @@ -1277,6 +1277,8 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere) co = c->cookies; while(co) { + if(!co->domain) + continue; format_ptr = get_netscape_format(co); if(format_ptr == NULL) { fprintf(out, "#\n# Fatal libcurl error\n"); @@ -1310,7 +1312,8 @@ struct curl_slist *Curl_cookie_list(struct SessionHandle *data) c = data->cookies->cookies; while(c) { - /* fill the list with _all_ the cookies we know */ + if(!c->domain) + continue; line = get_netscape_format(c); if(!line) { curl_slist_free_all(list); -- cgit v1.2.3