blob: a93c2a525088b090dd2ee15c056109740eb3dc15 [file] [log] [blame]
George Karpenkov10ab2ac2017-08-21 23:25:50 +00001// This file is distributed under the University of Illinois Open Source
2// License. See LICENSE.TXT for details.
3
4// Make sure LLVMFuzzerInitialize is called.
5#include <assert.h>
6#include <stddef.h>
7#include <stdint.h>
8#include <stdio.h>
9#include <stdlib.h>
10#include <string.h>
11
12static char *argv0;
13
14extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) {
15 assert(*argc > 0);
16 argv0 = **argv;
17 fprintf(stderr, "LLVMFuzzerInitialize: %s\n", argv0);
18 return 0;
19}
20
21extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
Kostya Serebryanyd3e4b7e2017-08-25 19:29:47 +000022 assert(argv0);
George Karpenkov10ab2ac2017-08-21 23:25:50 +000023 if (Size == strlen(argv0) &&
24 !memmem(Data, Size, argv0, Size)) {
25 fprintf(stderr, "BINGO %s\n", argv0);
26 exit(1);
27 }
28 return 0;
29}