diff --git a/fuzzing/Makefile b/fuzzing/Makefile index 0382d02..664ff93 100644 --- a/fuzzing/Makefile +++ b/fuzzing/Makefile @@ -22,6 +22,7 @@ oss-fuzz: # Link against object files $(CXX) $(CXXFLAGS) $(WRAPPED_SYSCALLS) -std=c++17 -O2 -DUWS_NO_ZLIB -I../src -I../uSockets/src EpollHelloWorld.cpp -o $(OUT)/EpollHelloWorld $(LIB_FUZZING_ENGINE) *.o # "Unit tests" + $(CXX) $(CXXFLAGS) -std=c++17 -O3 QueryParser.cpp -o $(OUT)/QueryParser $(LIB_FUZZING_ENGINE) $(CXX) $(CXXFLAGS) -std=c++17 -O3 WebSocket.cpp -o $(OUT)/WebSocket $(LIB_FUZZING_ENGINE) $(CXX) $(CXXFLAGS) -std=c++17 -O3 Http.cpp -o $(OUT)/Http $(LIB_FUZZING_ENGINE) $(CXX) $(CXXFLAGS) -DUWS_WITH_PROXY -std=c++17 -O3 Http.cpp -o $(OUT)/HttpWithProxy $(LIB_FUZZING_ENGINE) diff --git a/fuzzing/QueryParser.cpp b/fuzzing/QueryParser.cpp new file mode 100644 index 0000000..2b9ceb3 --- /dev/null +++ b/fuzzing/QueryParser.cpp @@ -0,0 +1,13 @@ +#include "../src/QueryParser.h" + +#include + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { + + std::string modifiableInput((char *) data, size); + + uWS::getDecodedQueryValue("", modifiableInput); + uWS::getDecodedQueryValue("hello", modifiableInput); + + return 0; +} \ No newline at end of file diff --git a/fuzzing/QueryParser.dict b/fuzzing/QueryParser.dict new file mode 100644 index 0000000..c8e66c3 --- /dev/null +++ b/fuzzing/QueryParser.dict @@ -0,0 +1,7 @@ +"?" +"%FF" +"&" +"+" +"hello" +"=" +