2c82f0a712
Recent a failed jenkins job had a lot of output, the tail of the log starts with: "Skipping 3,970,746 KB". I guessed that the problem is that the fuzzer figured out what is the protocol to change log levels, but it isn't there yet. What seems to happen is that fuzzer/Common.cpp defines the log level to be "none", but this is not handled at GenericLogger::mapToLevel(), so we managed to enable trace level for known-broken input where we're not interested in the errors/warnings. The fix can be tested by adding assert(false); to Log::log(), previously the fuzzer failed with an assertion failure for a simple input like "12" (unknown command) and now it just exits silently. Signed-off-by: Miklos Vajna <vmiklos@collabora.com> Change-Id: Ib5f4bedca706d7a0310a2eb9f661053a3095822d |
||
---|---|---|
.. | ||
admin-data | ||
data | ||
httpecho-data | ||
httpresponse-data | ||
Admin.cpp | ||
ClientSession.cpp | ||
Common.cpp | ||
Common.hpp | ||
httpecho-fuzz.sh | ||
HttpEcho.cpp | ||
HttpResponse.cpp | ||
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 ----