2022-05-18 10:44:39 +02:00
|
|
|
/*
|
|
|
|
* 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.
|
|
|
|
*/
|
|
|
|
|
2018-10-11 02:02:03 +02:00
|
|
|
/* 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;
|
2020-11-13 15:12:18 +01:00
|
|
|
long tell_result;
|
2018-10-11 02:02:03 +02:00
|
|
|
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);
|
2020-11-13 15:12:18 +01:00
|
|
|
tell_result = ftell (f);
|
|
|
|
assert (tell_result >= 0);
|
|
|
|
len = (size_t) tell_result;
|
2018-10-11 02:02:03 +02:00
|
|
|
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);
|
2021-03-31 18:43:42 +02:00
|
|
|
fclose (f);
|
2018-10-11 02:02:03 +02:00
|
|
|
printf ("Done!\n");
|
|
|
|
return 0;
|
|
|
|
}
|