mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-29 07:03:29 +00:00
Increase fuzz count. Add test for [too] large HTTP requests
This commit is contained in:
@@ -530,12 +530,13 @@ fn Client(comptime S: type) type {
|
|||||||
|
|
||||||
errdefer self.server.queueClose(self.socket);
|
errdefer self.server.queueClose(self.socket);
|
||||||
|
|
||||||
|
if (request.len > MAX_HTTP_REQUEST_SIZE) {
|
||||||
|
self.writeHTTPErrorResponse(413, "Request too large");
|
||||||
|
return error.RequestTooLarge;
|
||||||
|
}
|
||||||
|
|
||||||
// we're only expecting [body-less] GET requests.
|
// we're only expecting [body-less] GET requests.
|
||||||
if (std.mem.endsWith(u8, request, "\r\n\r\n") == false) {
|
if (std.mem.endsWith(u8, request, "\r\n\r\n") == false) {
|
||||||
if (request.len > MAX_HTTP_REQUEST_SIZE) {
|
|
||||||
self.writeHTTPErrorResponse(413, "Request too large");
|
|
||||||
return error.RequestTooLarge;
|
|
||||||
}
|
|
||||||
// we need more data, put any more data here
|
// we need more data, put any more data here
|
||||||
self.read_len = request.len;
|
self.read_len = request.len;
|
||||||
return;
|
return;
|
||||||
@@ -1065,6 +1066,16 @@ test "server: buildJSONVersionResponse" {
|
|||||||
"{\"webSocketDebuggerUrl\": \"ws://127.0.0.1:9001/\"}", res);
|
"{\"webSocketDebuggerUrl\": \"ws://127.0.0.1:9001/\"}", res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test "Client: http invalid request" {
|
||||||
|
try assertHTTPError(
|
||||||
|
error.RequestTooLarge,
|
||||||
|
413,
|
||||||
|
"Request too large",
|
||||||
|
"GET /over/9000 HTTP/1.1\r\n" ++ "Header: " ++ ("a" ** 2050) ++ "\r\n\r\n",
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
test "Client: http invalid handshake" {
|
test "Client: http invalid handshake" {
|
||||||
try assertHTTPError(
|
try assertHTTPError(
|
||||||
error.InvalidRequest,
|
error.InvalidRequest,
|
||||||
@@ -1336,7 +1347,7 @@ test "Client: fuzz" {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
for (0..1) |_| {
|
for (0..100) |_| {
|
||||||
var ms = MockServer{};
|
var ms = MockServer{};
|
||||||
defer ms.deinit();
|
defer ms.deinit();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user