LLVM
4.0.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
llvm.src
lib
Fuzzer
test
DSOTestMain.cpp
Go to the documentation of this file.
1
// This file is distributed under the University of Illinois Open Source
2
// License. See LICENSE.TXT for details.
3
4
// Source code for a simple DSO.
5
6
#include <cstdint>
7
#include <cstdlib>
8
#include <cstring>
9
#include <cstdio>
10
extern
int
DSO1
(
int
a);
11
extern
int
DSO2
(
int
a);
12
extern
int
DSOTestExtra
(
int
a);
13
14
static
volatile
int
*
nil
= 0;
15
16
extern
"C"
int
LLVMFuzzerTestOneInput
(
const
uint8_t *Data,
size_t
Size) {
17
int
x, y, z;
18
if
(Size <
sizeof
(
int
) * 3) {
19
x = y = z = 0;
20
}
else
{
21
memcpy(&x, Data + 0 *
sizeof
(
int
),
sizeof
(
int
));
22
memcpy(&y, Data + 1 *
sizeof
(
int
),
sizeof
(
int
));
23
memcpy(&z, Data + 2 *
sizeof
(
int
),
sizeof
(
int
));
24
}
25
int
sum =
DSO1
(x) +
DSO2
(y) + (z ?
DSOTestExtra
(z) : 0);
26
if
(sum == 3) {
27
fprintf(stderr,
"BINGO %d %d %d\n"
, x, y, z);
28
*
nil
= 0;
29
}
30
return
0;
31
}
DSO2
int DSO2(int a)
Definition:
DSO2.cpp:6
DSO1
int DSO1(int a)
Definition:
DSO1.cpp:6
nil
static volatile int * nil
Definition:
DSOTestMain.cpp:14
LLVMFuzzerTestOneInput
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
Definition:
DSOTestMain.cpp:16
DSOTestExtra
int DSOTestExtra(int a)
Definition:
DSOTestExtra.cpp:6
Generated on Wed Mar 8 2017 17:08:07 for LLVM by
1.8.6