mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-28 12:30:58 +00:00
Fix #2552 - reject requests with invalid/absent chunk length
This commit is contained in:
1 parent
f883504d2d
commit
6b0e4a425d
3 files changed
+21
-3
No files matched your search
+18
-2
@@ -1161,6 +1161,22 @@ static void test_http_server(void) {
|
||||
}
|
||||
#endif
|
||||
|
||||
// #2552, reject chunks with no length
|
||||
ASSERT(fetch(&mgr, buf, url,
|
||||
"POST / HTTP/1.1\r\n"
|
||||
"Transfer-Encoding: chunked\r\n\r\n"
|
||||
"1\r\n"
|
||||
"Z\r\n"
|
||||
"?\r\n"
|
||||
"\r\n") == 0);
|
||||
ASSERT(fetch(&mgr, buf, url,
|
||||
"POST / HTTP/1.1\r\n"
|
||||
"Transfer-Encoding: chunked\r\n\r\n"
|
||||
"1\r\n"
|
||||
"Z\r\n"
|
||||
"\r\n"
|
||||
"\r\n") == 0);
|
||||
|
||||
mg_mgr_free(&mgr);
|
||||
ASSERT(mgr.conns == NULL);
|
||||
}
|
||||
@@ -1605,11 +1621,11 @@ static void test_http_parse(void) {
|
||||
ASSERT(mg_http_parse(s, strlen(s), &hm) == (int) strlen(s));
|
||||
s = "a\nb:b\nc:c\n\n";
|
||||
ASSERT(mg_http_parse(s, strlen(s), &hm) < 0);
|
||||
s = "a b\nc: \xc0\n\n"; // Invalid UTF in the header value: accept
|
||||
s = "a b\nc: \xc0\n\n"; // Invalid UTF in the header value: accept
|
||||
ASSERT(mg_http_parse(s, strlen(s), &hm) == (int) strlen(s));
|
||||
ASSERT((v = mg_http_get_header(&hm, "c")) != NULL);
|
||||
ASSERT(mg_vcmp(v, "\xc0") == 0);
|
||||
s = "a b\n\xc0: 2\n\n"; // Invalid UTF in the header name: do NOT accept
|
||||
s = "a b\n\xc0: 2\n\n"; // Invalid UTF in the header name: do NOT accept
|
||||
ASSERT(mg_http_parse(s, strlen(s), &hm) == -1);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user