64 lines
2.0 KiB
Diff
64 lines
2.0 KiB
Diff
From 635c0837cfb774053238a691378716286842d886 Mon Sep 17 00:00:00 2001
|
|
From: Jay Satiro <raysatiro@yahoo.com>
|
|
Date: Thu, 18 Jun 2015 19:35:04 -0400
|
|
Subject: [PATCH] cookie: Fix bug in export if any-domain cookie is present
|
|
|
|
In 3013bb6 I had changed cookie export to ignore any-domain cookies,
|
|
however the logic I used to do so was incorrect, and would lead to a
|
|
busy loop in the case of exporting a cookie list that contained
|
|
any-domain cookies. The result of that is worse though, because in that
|
|
case the other cookies would not be written resulting in an empty file
|
|
once the application is terminated to stop the busy loop.
|
|
|
|
Upstream-commit: ef0fdb83b89c87b63e94bf6ecdab5cd8c6458b2e
|
|
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
|
---
|
|
lib/cookie.c | 9 ++-------
|
|
1 file changed, 2 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/lib/cookie.c b/lib/cookie.c
|
|
index 94f2a8b..22730cf 100644
|
|
--- a/lib/cookie.c
|
|
+++ b/lib/cookie.c
|
|
@@ -1274,9 +1274,8 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere)
|
|
"# http://curl.haxx.se/docs/http-cookies.html\n"
|
|
"# This file was generated by libcurl! Edit at your own risk.\n\n",
|
|
out);
|
|
- co = c->cookies;
|
|
|
|
- while(co) {
|
|
+ for(co = c->cookies; co; co = co->next) {
|
|
if(!co->domain)
|
|
continue;
|
|
format_ptr = get_netscape_format(co);
|
|
@@ -1288,7 +1287,6 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere)
|
|
}
|
|
fprintf(out, "%s\n", format_ptr);
|
|
free(format_ptr);
|
|
- co=co->next;
|
|
}
|
|
}
|
|
|
|
@@ -1309,9 +1307,7 @@ struct curl_slist *Curl_cookie_list(struct SessionHandle *data)
|
|
(data->cookies->numcookies == 0))
|
|
return NULL;
|
|
|
|
- c = data->cookies->cookies;
|
|
-
|
|
- while(c) {
|
|
+ for(c = data->cookies->cookies; c; c = c->next) {
|
|
if(!c->domain)
|
|
continue;
|
|
line = get_netscape_format(c);
|
|
@@ -1326,7 +1322,6 @@ struct curl_slist *Curl_cookie_list(struct SessionHandle *data)
|
|
return NULL;
|
|
}
|
|
list = beg;
|
|
- c = c->next;
|
|
}
|
|
|
|
return list;
|
|
--
|
|
2.5.0
|
|
|