aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZandra Hird <[email protected]>2015-02-05 10:11:45 +0100
committerZandra Hird <[email protected]>2015-02-05 10:11:45 +0100
commit280399ccfc3c4bd0e9c87c22bfc13045aae2bb76 (patch)
tree4b127fa0afd09feb82054d2317c1c65b466ed2a7
parentf3a8efa2e4fa6f3f64ee38939103bfd55e78bc51 (diff)
parentead8a497f382d6b82c98721d504a5ccd40889b1c (diff)
downloadotp-280399ccfc3c4bd0e9c87c22bfc13045aae2bb76.tar.gz
otp-280399ccfc3c4bd0e9c87c22bfc13045aae2bb76.tar.bz2
otp-280399ccfc3c4bd0e9c87c22bfc13045aae2bb76.zip
Merge branch 'scrapinghub/httpc_set_cookie_with_empty_values' into maint
* scrapinghub/httpc_set_cookie_with_empty_values: inets: parse correctly 'Set-Cookie' header with empty value OTP-12455
-rw-r--r--lib/inets/src/http_client/httpc_cookie.erl2
-rw-r--r--lib/inets/test/httpc_SUITE.erl1
2 files changed, 3 insertions, 0 deletions
diff --git a/lib/inets/src/http_client/httpc_cookie.erl b/lib/inets/src/http_client/httpc_cookie.erl
index 5d71a0bb8f..ed306a84f5 100644
--- a/lib/inets/src/http_client/httpc_cookie.erl
+++ b/lib/inets/src/http_client/httpc_cookie.erl
@@ -362,6 +362,8 @@ parse_set_cookie(CookieHeader, {DefaultPath, DefaultDomain}) ->
Name = string:substr(CookieHeader, 1, Pos - 1),
{Value, Attrs} =
case string:substr(CookieHeader, Pos + 1) of
+ [] ->
+ {"", ""};
[$;|ValueAndAttrs] ->
{"", string:tokens(ValueAndAttrs, ";")};
ValueAndAttrs ->
diff --git a/lib/inets/test/httpc_SUITE.erl b/lib/inets/test/httpc_SUITE.erl
index 9f9e400194..21be7862cb 100644
--- a/lib/inets/test/httpc_SUITE.erl
+++ b/lib/inets/test/httpc_SUITE.erl
@@ -1709,6 +1709,7 @@ handle_uri(_,"/empty_set_cookie.html",_,_,_,_) ->
handle_uri(_,"/invalid_set_cookie.html",_,_,_,_) ->
"HTTP/1.1 200 ok\r\n" ++
"set-cookie: =\r\n" ++
+ "set-cookie: name=\r\n" ++
"set-cookie: name-or-value\r\n" ++
"Content-Length:32\r\n\r\n"++
"<HTML><BODY>foobar</BODY></HTML>";