Add Http fuzzing

This commit is contained in:
Alex Hultman
2019-03-09 12:01:59 +01:00
parent 2ba5d06bdf
commit 3b3b1d70c6
2 changed files with 44 additions and 1 deletions
+42
View File
@@ -0,0 +1,42 @@
/* This is a fuzz test of the http parser */
#define WIN32_EXPORT
/* We test the websocket parser */
#include "../src/HttpParser.h"
/* We use this to pad the fuzz */
char *padded = new char[1024 * 500];
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
/* Pad the fuzz */
uWS::HttpParser httpParser;
memcpy(padded + 32, data, size);
/* User data */
void *user = (void *) 13;
/* Parse it */
httpParser.consumePostPadded(padded + 32, size, user, [](void *s, uWS::HttpRequest *httpRequest) -> void * {
/* todo: Route this via router */
/* Return ok */
return s;
}, [](void *user, std::string_view data, bool fin) -> void * {
/* Return ok */
return user;
}, [](void *user) {
/* Return break */
return nullptr;
});
return 0;
}
+2 -1
View File
@@ -1,2 +1,3 @@
default:
clang++ -fsanitize=address,fuzzer -O3 WebSocket.cpp -o WebSocket
clang++ -std=c++17 -fsanitize=address,fuzzer -O3 WebSocket.cpp -o WebSocket
clang++ -std=c++17 -fsanitize=address,fuzzer -O3 Http.cpp -o Http