libreoffice-online/fuzzer
Miklos Vajna 9afe974848 Add a fuzzer for http::Response::readData()
And remove the httpheader one, which is not useful, since it uses Poco
for the actual parsing, it did not find anything. (If we switch away
from Poco there in the future, it's easy enough to restore it.)

Also fix some problems found by the fuzzer.

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I254247c46ecc78c9c3e75aac4f10c441b0e10fb3
2021-04-23 17:54:36 +02:00
..
admin-data
data
httpresponse-data Add a fuzzer for http::Response::readData() 2021-04-23 17:54:36 +02:00
httpstatus-data StatusLine::parse: handle non-null-terminated buffer with std::atoi() 2021-04-23 15:32: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
HttpResponse.cpp Add a fuzzer for http::Response::readData() 2021-04-23 17:54:36 +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::Response::readData() 2021-04-23 17:54:36 +02:00

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/
----

- HttpStatus:

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

- HttpRessponse:

----
./httpresponse_fuzzer -max_len=16384 fuzzer/httpresponse-data/
----