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