Skip extensions in SetCookie parser #1049 (#1050)

This commit is contained in:
MK 2018-10-17 12:48:23 -04:00 committed by Chris Ross
parent 3fe17b9faf
commit 39c25357c6
2 changed files with 22 additions and 4 deletions

View File

@ -454,7 +454,13 @@ namespace Microsoft.Net.Http.Headers
// extension-av = <any CHAR except CTLs or ";">
else
{
// TODO: skip it? Store it in a list?
// TODO: skiping it for now to avoid parsing failure? Store it in a list?
// = (no spaces)
if (!ReadEqualsSign(input, ref offset))
{
return 0;
}
ReadToSemicolonOrEnd(input, ref offset);
}
}

View File

@ -365,6 +365,18 @@ namespace Microsoft.Net.Http.Headers
Assert.Equal(cookies, results);
}
[Fact]
public void SetCookieHeaderValue_TryParse_SkipExtensionValues()
{
string cookieHeaderValue = "cookiename=value; extensionname=value;";
SetCookieHeaderValue setCookieHeaderValue;
SetCookieHeaderValue.TryParse(cookieHeaderValue, out setCookieHeaderValue);
Assert.Equal("value", setCookieHeaderValue.Value);
}
[Theory]
[MemberData(nameof(ListOfSetCookieHeaderDataSet))]
public void SetCookieHeaderValue_ParseStrictList_AcceptsValidValues(IList<SetCookieHeaderValue> cookies, string[] input)