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