collabora-online/fuzzer
Miklos Vajna 80c6562e59 Add a fuzzer for http::StatusLine::parse()
And fix an unhandled std::length_error it found.

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I571cdd71caeda84820f2c64088966936637ce2bf
2021-04-23 09:02:21 +02:00
..
admin-data LOOLWSD::sendMessageToForKit: add error handling 2021-03-16 10:46:23 +01:00
data wsd: fix crash on renderfont when the doc broker has no tile cache 2020-12-21 10:23:56 +01:00
httpheader-data Add an initial libfuzzer based fuzzer for http::Header::parse() 2021-04-22 15:56:58 +02:00
httpstatus-data Add a fuzzer for http::StatusLine::parse() 2021-04-23 09:02:21 +02:00
Admin.cpp HttpRequest: add missing config.h include 2021-03-30 12:23:09 +02:00
ClientSession.cpp HttpRequest: add missing config.h include 2021-03-30 12:23:09 +02:00
HttpHeader.cpp Add an initial libfuzzer based fuzzer for http::Header::parse() 2021-04-22 15:56:58 +02:00
HttpStatus.cpp Add a fuzzer for http::StatusLine::parse() 2021-04-23 09:02:21 +02:00
README Add a fuzzer for http::StatusLine::parse() 2021-04-23 09:02:21 +02:00

README

These fuzzers are meant to be built and executed inside lode.git's sanitizers
environment (currently enables both asan and ubsan).

online.git can be built the usual way, just the additional `--enable-fuzzers`
flag is needed to build the fuzzers. It is useful to do this in a separate
build tree, since the fuzzers config doesn't produce a `loolwsd` binary.

Run the fuzzers like this:

- Admin:

----
./admin_fuzzer -max_len=16384 fuzzer/admin-data/
----

- ClientSession:

----
./clientsession_fuzzer -max_len=16384 fuzzer/data/
----

- HttpHeader (less useful, found no problems so far):

----
./httpheader_fuzzer -max_len=16384 fuzzer/httpheader-data/
----

- HttpStatus:

----
./httpstatus_fuzzer -max_len=16384 fuzzer/httpstatus-data/
----