Fix parse illegal characters in obs-fold

This commit is contained in:
Vinnie Falco
2017-07-08 11:45:04 -07:00
parent f657057c49
commit a00ce1209b
3 changed files with 41 additions and 0 deletions

View File

@ -8,6 +8,7 @@ Version 76:
* Serializer members are not const
* serializing file_body is not const
* Add file_body_win32
* Fix parse illegal characters in obs-fold
API Changes:

View File

@ -797,6 +797,11 @@ protected:
p = parse_token_to_eol(p, last, token_last, ec);
if(ec)
return;
if(! p)
{
ec = error::bad_value;
return;
}
// Look 1 char past the CRLF to handle obs-fold.
if(p + 1 > last)
{

View File

@ -1103,6 +1103,40 @@ public:
//--------------------------------------------------------------------------
void
testFuzz1()
{
error_code ec;
test_parser<true> p;
feed(buf(
"LOCK /%e7lY;/;;%0b8=p/r HTTP/1.1\r\n"
"Accept-Encoding:\r\n"
" <20>\r\n"
"Original-Message-ID:<3A> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: \r\n"
" <20>D<EFBFBD><44><06>\r\n"
"Resent-Date:<3A>\r\n"
"Alt-Svc: \r\n"
"Trailer: \r\n"
"List-ID:<3A>k<EFBFBD> \r\n"
"Alternate-Recipient:<3A><13>\"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>qJ̼<EFBFBD><EFBFBD>[r<><72>\r\n"
"Location: \r\n"
"Accept-Additions: \r\n"
"MMHS-Originator-PLAD: \r\n"
"Original-Sender: \r\n"
"Original-Sender:\r\n"
"PICS-Label:\r\n"
" \r\n"
"If: @<40>P\\<EFBFBD>Æ<EFBFBD><EFBFBD>\\|<7C>E\r\n"
"MMHS-Exempted-Address:\r\n"
"Injection-Info: \r\n"
"Contetn-Length: 0\r\n"
"\r\n"
), p, ec);
BEAST_EXPECT(ec);
}
//--------------------------------------------------------------------------
void
run() override
{
@ -1122,6 +1156,7 @@ public:
testIssue430();
testIssue452();
testIssue496();
testFuzz1();
}
};