11#include " zeroerr/fuzztest.h"
2- #include " zeroerr/log.h"
32#include " zeroerr/assert.h"
3+ #include " zeroerr/log.h"
44
55#include < cstring>
66#ifdef ZEROERR_ENABLE_FUZZING
77extern " C" int LLVMFuzzerRunDriver (int * argc, char *** argv,
8- int (*user_callback)(const uint8_t * data,
9- size_t size));
8+ int (*user_callback)(const uint8_t * data, size_t size));
109
11- extern " C" size_t LLVMFuzzerCustomMutator (uint8_t * data, size_t size,
12- size_t max_size, unsigned int seed);
10+ extern " C" size_t LLVMFuzzerCustomMutator (uint8_t * data, size_t size, size_t max_size,
11+ unsigned int seed);
1312#endif
1413
1514namespace zeroerr {
1615static IFuzzTest* current_fuzz_test = nullptr ;
1716} // namespace zeroerr
1817
19- size_t LLVMFuzzerCustomMutator (uint8_t * data, size_t size, size_t max_size,
20- unsigned int seed) {
21- const std::string mutated_data = zeroerr::current_fuzz_test->MutateData (data, size, max_size, seed);
22- if (mutated_data.size () > max_size) {
23- WARN (" Mutated data is larger than the limit({limit}). Returning the original data ({ori})" , max_size, size);
24- return size;
25- }
26- memcpy (data, mutated_data.data (), mutated_data.size ());
27- return mutated_data.size ();
18+ size_t LLVMFuzzerCustomMutator (uint8_t * data, size_t size, size_t max_size, unsigned int seed) {
19+ const std::string mutated_data =
20+ zeroerr::current_fuzz_test->MutateData (data, size, max_size, seed);
21+ if (mutated_data.size () > max_size) {
22+ WARN (" Mutated data is larger than the limit({limit}). Returning the original data ({ori})" ,
23+ max_size, size);
24+ return size;
25+ }
26+ memcpy (data, mutated_data.data (), mutated_data.size ());
27+ return mutated_data.size ();
2828}
2929
3030namespace zeroerr {
3131
32- void RunFuzzTest (IFuzzTest& fuzz_test, int seed, int runs, int max_len, int timeout, int len_control) {
32+ void RunFuzzTest (IFuzzTest& fuzz_test, int seed, int runs, int max_len, int timeout,
33+ int len_control) {
3334#ifdef ZEROERR_ENABLE_FUZZING
34- current_fuzz_test = &fuzz_test;
35- int argc = 6 ;
35+ current_fuzz_test = &fuzz_test;
36+ int argc = 6 ;
3637 std::string argv[] = {
3738 " fuzztest" ,
3839 " -max_len=" + std::to_string (max_len),
@@ -46,9 +47,9 @@ void RunFuzzTest(IFuzzTest& fuzz_test, int seed, int runs, int max_len, int time
4647 argv_c[i] = (char *)argv[i].c_str ();
4748 }
4849 LOG (" Running fuzz test" );
49-
50+
5051 LLVMFuzzerRunDriver (&argc, &argv_c, [](const uint8_t * data, size_t size) -> int {
51- LOG (" Running RunOneTime" );
52+ LOG (" Running RunOneTime" );
5253 if (current_fuzz_test->should_stop ()) {
5354 throw FuzzFinishedException ();
5455 }
0 commit comments