| #include "zip_read_fuzzer.cc" |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| /* fuzz target entry point, works without libFuzzer */ |
| |
| int |
| main(int argc, char **argv) { |
| FILE *f; |
| char *buf = NULL; |
| long siz_buf; |
| |
| if (argc < 2) { |
| fprintf(stderr, "no input file\n"); |
| goto err; |
| } |
| |
| f = fopen(argv[1], "rb"); |
| if (f == NULL) { |
| fprintf(stderr, "error opening input file %s\n", argv[1]); |
| goto err; |
| } |
| |
| fseek(f, 0, SEEK_END); |
| |
| siz_buf = ftell(f); |
| rewind(f); |
| |
| if (siz_buf < 1) { |
| goto err; |
| } |
| |
| buf = (char *)malloc(siz_buf); |
| if (buf == NULL) { |
| fprintf(stderr, "malloc() failed\n"); |
| goto err; |
| } |
| |
| if (fread(buf, siz_buf, 1, f) != 1) { |
| fprintf(stderr, "fread() failed\n"); |
| goto err; |
| } |
| |
| (void)LLVMFuzzerTestOneInput((uint8_t *)buf, siz_buf); |
| |
| err: |
| free(buf); |
| |
| return 0; |
| } |