提交 09366779 编写于 作者: M Marek Safar

[system] Don't terminate response reading on bad cookie value. Fixes #18868

上级 8b1ca21e
...@@ -347,22 +347,31 @@ namespace System.Net ...@@ -347,22 +347,31 @@ namespace System.Net
if (webHeaders == null) if (webHeaders == null)
return; return;
string value = webHeaders.Get ("Set-Cookie"); //
if (value != null) { // Don't terminate response reading on bad cookie value
SetCookie (value); //
string value;
try {
value = webHeaders.Get ("Set-Cookie");
if (value != null && SetCookie (value))
return;
} catch {
} }
try {
value = webHeaders.Get ("Set-Cookie2"); value = webHeaders.Get ("Set-Cookie2");
if (value != null) { if (value != null)
SetCookie (value); SetCookie (value);
} catch {
} }
} }
void SetCookie (string header) bool SetCookie (string header)
{ {
if (cookieCollection == null) if (cookieCollection == null)
cookieCollection = new CookieCollection (); cookieCollection = new CookieCollection ();
bool at_least_one_set = false;
var parser = new CookieParser (header); var parser = new CookieParser (header);
foreach (var cookie in parser.Parse ()) { foreach (var cookie in parser.Parse ()) {
if (cookie.Domain == "") { if (cookie.Domain == "") {
...@@ -375,9 +384,13 @@ namespace System.Net ...@@ -375,9 +384,13 @@ namespace System.Net
continue; continue;
cookieCollection.Add (cookie); cookieCollection.Add (cookie);
if (cookie_container != null) if (cookie_container != null) {
cookie_container.Add (uri, cookie); cookie_container.Add (uri, cookie);
at_least_one_set = true;
}
} }
return at_least_one_set;
} }
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册