#include #include #include #include "jv.h" int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) { if (size < 8) { return 0; } int fuzz_flags = *(int*)data; data += 4; size -= 4; int dump_flags = *(int*)data; data += 4; size -= 4; // Creat null-terminated string char *null_terminated = (char *)malloc(size + 1); memcpy(null_terminated, (char *)data, size); null_terminated[size] = '\0'; // Fuzzer entrypoint jv res = jv_parse_custom_flags(null_terminated, fuzz_flags); if (jv_is_valid(res)) { jv_dump(res, dump_flags); } else { jv_free(res); } // Free the null-terminated string free(null_terminated); return 0; }