From 57deac5e8cb3d4cbfd01bbaea7b22c2c8f81bbf1 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 30 Sep 2017 14:10:12 +0200 Subject: cookie: fix memory leak if path was set twice in header ... this will let the second occurance override the first. Reported-by: Max Dymond Fixes #1932 --- lib/cookie.c | 1 + tests/data/Makefile.inc | 2 +- tests/data/test1161 | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 tests/data/test1161 diff --git a/lib/cookie.c b/lib/cookie.c index 1d7defd84..271f6d49d 100644 --- a/lib/cookie.c +++ b/lib/cookie.c @@ -499,6 +499,7 @@ Curl_cookie_add(struct Curl_easy *data, badcookie = TRUE; /* out of memory bad */ break; } + free(co->spath); /* if this is set again */ co->spath = sanitize_cookie_path(co->path); if(!co->spath) { badcookie = TRUE; /* out of memory bad */ diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index 4366f4b99..823d27548 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -123,7 +123,7 @@ test1128 test1129 test1130 test1131 test1132 test1133 test1134 test1135 \ test1136 test1137 test1138 test1139 test1140 test1141 test1142 test1143 \ test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \ \ -test1160 \ +test1160 test1161 \ test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \ test1208 test1209 test1210 test1211 test1212 test1213 test1214 test1215 \ test1216 test1217 test1218 test1219 \ diff --git a/tests/data/test1161 b/tests/data/test1161 new file mode 100644 index 000000000..179531314 --- /dev/null +++ b/tests/data/test1161 @@ -0,0 +1,54 @@ + + + +HTTP +HTTP GET +cookies + + + +# Server-side + + + +HTTP/1.1 200 OK +Date: Thu, 09 Nov 2010 14:49:00 GMT +Content-Length: 0 +Set-Cookie: ckyPersistent=permanent;path=;path=/ + + + + +# Client-side + + +http + + +HTTP cookie with path set twice + + +http://%HOSTIP:%HTTPPORT/1161 -c log/cookies1161.txt + + + +# Verify data after the test has been "shot" + + +^User-Agent:.* + + +GET /1161 HTTP/1.1 +Host: %HOSTIP:%HTTPPORT +Accept: */* + + + +# Netscape HTTP Cookie File +# https://curl.haxx.se/docs/http-cookies.html +# This file was generated by libcurl! Edit at your own risk. + +127.0.0.1 FALSE / FALSE 0 ckyPersistent permanent + + + -- cgit v1.2.1