diff options
author | David Korczynski <david@adalogics.com> | 2023-07-24 05:42:39 -0700 |
---|---|---|
committer | Emanuele Torre <torreemanuele6@gmail.com> | 2023-07-24 15:45:12 +0200 |
commit | 97c6d2848c98e07f8ed04c2c3bf9730a180889a9 (patch) | |
tree | 865263b91b3c19431ad9bc7d8583d929446e2c50 /tests | |
parent | 8a4f246876ebfec5807c69d4c378d0d161a4b029 (diff) |
Add fuzzer targeting load_file
Signed-off-by: David Korczynski <david@adalogics.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/jq_fuzz_load_file.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/jq_fuzz_load_file.c b/tests/jq_fuzz_load_file.c new file mode 100644 index 00000000..e362d028 --- /dev/null +++ b/tests/jq_fuzz_load_file.c @@ -0,0 +1,27 @@ +#include <stdint.h> +#include <stdlib.h> + +#include "jv.h" + +int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) { + // Create file with fuzzer data + char filename[256]; + sprintf(filename, "/tmp/libfuzzer.%d", getpid()); + FILE *fp = fopen(filename, "wb"); + if (!fp) { + return 0; + } + fwrite(data, size, 1, fp); + fclose(fp); + + // Fuzz the two version of jv_load_file + jv data1 = jv_load_file(filename, 1); + jv_free(data1); + jv data2 = jv_load_file(filename, 0); + jv_free(data2); + + // Clean up fuzz file + unlink(filename); + + return 0; +} |