| /* | |
| * Copyright 2018 LLVM contributors | |
| * | |
| * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| * | |
| * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| * See https://llvm.org/LICENSE.txt for license information. | |
| */ | |
| /* Simpler gnu89 version of StandaloneFuzzTargetMain.c from LLVM */ | |
| #include <assert.h> | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| extern int LLVMFuzzerTestOneInput (const unsigned char *data, size_t size); | |
| int | |
| main (int argc, char **argv) | |
| { | |
| FILE *f; | |
| long tell_result; | |
| size_t n_read, len; | |
| unsigned char *buf; | |
| if (argc < 2) | |
| return 1; | |
| f = fopen (argv[1], "r"); | |
| assert (f); | |
| fseek (f, 0, SEEK_END); | |
| tell_result = ftell (f); | |
| assert (tell_result >= 0); | |
| len = (size_t) tell_result; | |
| fseek (f, 0, SEEK_SET); | |
| buf = (unsigned char*) malloc (len); | |
| n_read = fread (buf, 1, len, f); | |
| assert (n_read == len); | |
| LLVMFuzzerTestOneInput (buf, len); | |
| free (buf); | |
| fclose (f); | |
| printf ("Done!\n"); | |
| return 0; | |
| } |