mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-28 23:19:33 +00:00
61 lines
1.2 KiB
C++
61 lines
1.2 KiB
C++
#include <cstddef>
|
|
#include <cstdint>
|
|
#include <cstdio>
|
|
#include <cstdlib>
|
|
|
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len);
|
|
__attribute__((weak)) extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv);
|
|
|
|
#ifdef IS_AFL
|
|
|
|
__AFL_FUZZ_INIT();
|
|
|
|
int main(int argc, char *argv[]) {
|
|
#ifdef __AFL_HAVE_MANUAL_CONTROL
|
|
__AFL_INIT();
|
|
#endif
|
|
|
|
uint8_t *buf = __AFL_FUZZ_TESTCASE_BUF;
|
|
|
|
if (LLVMFuzzerInitialize)
|
|
LLVMFuzzerInitialize(&argc, &argv);
|
|
|
|
while (__AFL_LOOP(10000)) {
|
|
int len = __AFL_FUZZ_TESTCASE_LEN;
|
|
LLVMFuzzerTestOneInput(buf, len);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
#else
|
|
|
|
int main(int argc, char *argv[]) {
|
|
if (argc != 2) {
|
|
printf("Error! Must specificy a input file\n");
|
|
return 1;
|
|
}
|
|
|
|
if (LLVMFuzzerInitialize)
|
|
LLVMFuzzerInitialize(&argc, &argv);
|
|
|
|
FILE *f = fopen(argv[1], "r");
|
|
if (!f) return 1;
|
|
|
|
fseek(f, 0, SEEK_END);
|
|
size_t fsize = ftell(f);
|
|
fseek(f, 0, SEEK_SET); /* same as rewind(f); */
|
|
|
|
uint8_t *string = (uint8_t *)malloc(fsize + 1);
|
|
size_t l = fread(string, fsize, 1, f);
|
|
|
|
fclose(f);
|
|
|
|
LLVMFuzzerTestOneInput(string, fsize);
|
|
|
|
free(string);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#endif
|