fix cookie value parsing
authorOleg Nemanov <lego12239@yandex.ru>
Mon, 4 Mar 2019 12:24:50 +0000 (15:24 +0300)
committerOleg Nemanov <lego12239@yandex.ru>
Mon, 4 Mar 2019 12:34:59 +0000 (15:34 +0300)
commit458eedf810b7417180a870077dbf957463adf08d
tree9acff425e79fee8617d48d6bd7a5fc592f43d981
parent985fa8acb2d9c71b36548e4f90f0f96ef9c4eab6
fix cookie value parsing

Cookie value(according to RFC6265) can contain US-ASCII characters
excluding CTLs, whitespace, DQUOTE, comma, semicolon and backslash:

cookie-header = "Cookie:" OWS cookie-string OWS
cookie-string = cookie-pair *( ";" SP cookie-pair )
cookie-pair       = cookie-name "=" cookie-value
cookie-value      = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
cookie-octet      = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E

But mochiweb_cookie:parse_cookie() use smaller allowed characters list.
For example, if cookie value is base64 string like MQ==,
then parse_cookie() makes it MQ.

Fix this by using a separate function for value parsing instead of
read_token().
src/mochiweb_cookies.erl