This commit is contained in:
Daniil Kovalev
2021-08-30 21:45:50 +03:00
parent 0b8d6a6614
commit 4ea4d69123
3 changed files with 7 additions and 3 deletions

View File

@@ -38,7 +38,7 @@ void UnpackPackFuzzerRegressionTest(const std::string& fpath) {
std::vector<char> bytes(length); std::vector<char> bytes(length);
in.read(bytes.data(), bytes.size()); in.read(bytes.data(), bytes.size());
BOOST_REQUIRE(in); BOOST_REQUIRE(in);
BOOST_REQUIRE_EQUAL(0, FuzzerTestOneInput(reinterpret_cast<const uint8_t *>(bytes.data()), bytes.size())); BOOST_REQUIRE_EQUAL(0, LLVMFuzzerTestOneInput(reinterpret_cast<const uint8_t *>(bytes.data()), bytes.size()));
} }
boost::unit_test::test_suite* init_unit_test_suite(int /*argc*/, char* /*argv*/[]) boost::unit_test::test_suite* init_unit_test_suite(int /*argc*/, char* /*argv*/[])

View File

@@ -1,6 +1,10 @@
#include <msgpack.hpp> #include <msgpack.hpp>
extern "C" int FuzzerTestOneInput(const uint8_t *data, size_t size) { // The function's signature must NOT be changed since other projects rely on it:
// - libFuzzer
// - AFL++
// - Google's oss-fuzz (uses the previous two ones)
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
try { try {
// NOTE(derwolfe): by default the limits are set at 2^32-1 length. I'm // NOTE(derwolfe): by default the limits are set at 2^32-1 length. I'm
// setting these at far smaller values to avoid OOMs // setting these at far smaller values to avoid OOMs

View File

@@ -5,5 +5,5 @@
BOOST_AUTO_TEST_CASE(works) BOOST_AUTO_TEST_CASE(works)
{ {
BOOST_CHECK_EQUAL(0, FuzzerTestOneInput(MSGPACK_NULLPTR, 0)); BOOST_CHECK_EQUAL(0, LLVMFuzzerTestOneInput(MSGPACK_NULLPTR, 0));
} }