libreoffice-online/fuzzer
Miklos Vajna d04d6bd392 wsd: avoid nested startActivity()
Avoids this assertion failure:

    #7 0x7f9fbef8fcf1 in __assert_fail (/lib64/libc.so.6+0x42cf1) (BuildId: cfb059a57e69ac95d5dadab831626b3bd48a4309)
    #8 0x55d44ed78891 in DocumentBroker::startActivity(DocumentBroker::DocumentState::Activity) /home/vmiklos/git/collaboraonline/online-fuzz/./wsd/DocumentBroker.hpp:1550:13
    #9 0x55d44ee0884f in DocumentBroker::startSwitchingToOnline() /home/vmiklos/git/collaboraonline/online-fuzz/wsd/DocumentBroker.cpp:4654:10
    #10 0x55d44f05760a in ClientSession::_handleInput(char const*, int) /home/vmiklos/git/collaboraonline/online-fuzz/wsd/ClientSession.cpp:1168:20

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Iedc515b90c0e4f43dc14f0d998ba5c756fddd10d
2024-07-17 09:46:50 +02:00
..
admin-data fuzzer: reject increasing the log level via update-log-levels 2024-06-26 22:16:08 +02:00
data wsd: avoid nested startActivity() 2024-07-17 09:46:50 +02:00
httpecho-data
httpresponse-data
Admin.cpp fuzzer, clientsession: fix build 2024-05-13 08:29:07 +01:00
ClientSession.cpp fuzzer, clientsession: fix build 2024-05-13 08:29:07 +01:00
Common.cpp fuzzer: initialize client context of the ssl manager 2024-07-08 15:34:51 +01:00
Common.hpp fuzzer, clientsession: fix build 2024-05-13 08:29:07 +01:00
httpecho-fuzz.sh
HttpEcho.cpp fuzzer, clientsession: fix build 2024-05-13 08:29:07 +01:00
HttpResponse.cpp fuzzer, clientsession: fix build 2024-05-13 08:29:07 +01: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 `coolwsd` binary.

Run the fuzzers like this:

- Admin:

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

- ClientSession:

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

- HttpResponse:

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

- HttpEcho:

----
./httpecho_fuzzer -max_len=16384 fuzzer/httpecho-data/
OR, better:
./fuzzer/httpecho-fuzz.sh
----