mirror of
https://github.com/LibreOffice/online.git
synced 2025-08-01 16:04:55 +00:00
Add an initial libfuzzer based fuzzer for the admin console
Run the actual fuzzer like this: ./admin_fuzzer -max_len=16384 fuzzer/admin-data/ Change-Id: I5891df8033ff1837afce86775ee62447587f2f20 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/91504 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
This commit is contained in:
22
fuzzer/Admin.cpp
Normal file
22
fuzzer/Admin.cpp
Normal file
@ -0,0 +1,22 @@
|
||||
#include <iostream>
|
||||
|
||||
#include "Admin.hpp"
|
||||
|
||||
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
|
||||
{
|
||||
Admin& admin = Admin::instance();
|
||||
auto handler = std::make_shared<AdminSocketHandler>(&admin);
|
||||
|
||||
std::string input(reinterpret_cast<const char*>(data), size);
|
||||
std::stringstream ss(input);
|
||||
std::string line;
|
||||
while (std::getline(ss, line, '\n'))
|
||||
{
|
||||
std::vector<char> lineVector(line.data(), line.data() + line.size());
|
||||
handler->handleMessage(lineVector);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
Reference in New Issue
Block a user