Fix Http.cpp fuzzing as HttpWithProxy
This commit is contained in:
+12
-2
@@ -10,6 +10,9 @@
|
|||||||
/* And the router */
|
/* And the router */
|
||||||
#include "../src/HttpRouter.h"
|
#include "../src/HttpRouter.h"
|
||||||
|
|
||||||
|
/* Also ProxyParser */
|
||||||
|
#include "../src/ProxyParser.h"
|
||||||
|
|
||||||
struct StaticData {
|
struct StaticData {
|
||||||
|
|
||||||
struct RouterData {
|
struct RouterData {
|
||||||
@@ -76,8 +79,15 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
|||||||
/* User data */
|
/* User data */
|
||||||
void *user = (void *) 13;
|
void *user = (void *) 13;
|
||||||
|
|
||||||
|
/* If we are built with WITH_PROXY, pass a ProxyParser as reserved */
|
||||||
|
void *reserved = nullptr;
|
||||||
|
#ifdef UWS_WITH_PROXY
|
||||||
|
uWS::ProxyParser pp;
|
||||||
|
reserved = (void *) &pp;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Iterate the padded fuzz as chunks */
|
/* Iterate the padded fuzz as chunks */
|
||||||
makeChunked(makePadded(data, size), size, [&httpParser, user](const uint8_t *data, size_t size) {
|
makeChunked(makePadded(data, size), size, [&httpParser, user, reserved](const uint8_t *data, size_t size) {
|
||||||
/* We need at least 1 byte post padding */
|
/* We need at least 1 byte post padding */
|
||||||
if (size) {
|
if (size) {
|
||||||
size--;
|
size--;
|
||||||
@@ -87,7 +97,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Parse it */
|
/* Parse it */
|
||||||
httpParser.consumePostPadded((char *) data, size, user, nullptr, [](void *s, uWS::HttpRequest *httpRequest) -> void * {
|
httpParser.consumePostPadded((char *) data, size, user, reserved, [](void *s, uWS::HttpRequest *httpRequest) -> void * {
|
||||||
|
|
||||||
readBytes(httpRequest->getHeader(httpRequest->getUrl()));
|
readBytes(httpRequest->getHeader(httpRequest->getUrl()));
|
||||||
readBytes(httpRequest->getMethod());
|
readBytes(httpRequest->getMethod());
|
||||||
|
|||||||
Reference in New Issue
Block a user