89f080ba45
This can happen like this: #8 0x7f14fdf4ec86 in std::terminate() (/usr/lib64/libstdc++.so.6+0xb7c86) (BuildId: c74eca671e2dd0f063706372d103f8acef88f1e3) #9 0x7f14fdf4eee7 in __cxa_throw (/usr/lib64/libstdc++.so.6+0xb7ee7) (BuildId: c74eca671e2dd0f063706372d103f8acef88f1e3) #10 0x55ddc5b906d2 in Poco::AutoPtr<Poco::Channel>::operator->() /usr/include/Poco/AutoPtr.h:232:4 #11 0x55ddc5b7eb07 in AdminSocketHandler::handleMessage(std::vector<char, std::allocator<char>> const&) /home/vmiklos/git/collaboraonline/online-fuzz/wsd/Admin.cpp:236:13 Note how LOG_ANY() assumes that Log::logger().getChannel() is not nullptr (so the caller has to check for it), while the more typical variants with a log level like LOG_TRC() already do a similar check via LOG_CONDITIONAL(). Signed-off-by: Miklos Vajna <vmiklos@collabora.com> Change-Id: I5e1379f33e6640fd07de673ef0d07b1d4d611c89 |
||
---|---|---|
.. | ||
admin-data | ||
data | ||
httpecho-data | ||
httpresponse-data | ||
Admin.cpp | ||
ClientSession.cpp | ||
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 ----