1 #include "zip_read_fuzzer.cc"
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 /* fuzz target entry point, works without libFuzzer */
6
main(int argc,char ** argv)7 int main(int argc, char **argv)
8 {
9 FILE *f;
10 char *buf = NULL;
11 long siz_buf;
12
13 if (argc < 2) {
14 fprintf(stderr, "no input file\n");
15 goto err;
16 }
17
18 f = fopen(argv[1], "rb");
19 if (f == NULL) {
20 fprintf(stderr, "error opening input file %s\n", argv[1]);
21 goto err;
22 }
23
24 fseek(f, 0, SEEK_END);
25
26 siz_buf = ftell(f);
27 rewind(f);
28
29 if (siz_buf < 1) {
30 goto err;
31 }
32
33 buf = (char*)malloc(siz_buf);
34 if (buf == NULL) {
35 fprintf(stderr, "malloc() failed\n");
36 goto err;
37 }
38
39 if (fread(buf, siz_buf, 1, f) != 1) {
40 fprintf(stderr, "fread() failed\n");
41 goto err;
42 }
43
44 (void)LLVMFuzzerTestOneInput((uint8_t*)buf, siz_buf);
45
46 err:
47 free(buf);
48
49 return 0;
50 }
51