-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.c
59 lines (52 loc) · 1.22 KB
/
test.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "smolfuzz.h"
#include <stdio.h>
u32 check_code(u32 code)
{
return (code == 79285) ? code : 0;
}
void code_bruteforced(fuzz_call_return_value_t return_value, fuzz_call_description_t *call_description)
{
printf("code bruteforced: %d (%d)\n", return_value._32, call_description->last_args[0]);
}
u8 check_char(char c)
{
return c == '?' ? '+' : '-';
}
void plus_encountered(fuzz_call_return_value_t return_value, fuzz_call_description_t *call_description)
{
printf("plus encountered (%d)\n", call_description->last_args[0]);
}
DEFINE_FUZZ_TARGETS(
fuzz_test,
DEFINE_FUZZ_TARGET(
check_code,
100000,
FUZZ_CALL_CDECL,
fuzz_call_return_value_eq(79285),
code_bruteforced,
1,
fuzz_call_arg(
FUZZ_CALL_ARG_U32,
FALSE_C,
fuzz_arg_step(1, -1, FALSE_C)
)
),
DEFINE_FUZZ_TARGET(
check_char,
1000,
FUZZ_CALL_CDECL,
fuzz_call_return_value_neq('-'),
plus_encountered,
1,
fuzz_call_arg(
FUZZ_CALL_ARG_U8,
FALSE_C,
fuzz_arg_min_max(0, 255, FALSE_C)
)
)
);
int main()
{
FUZZ_TARGETS(fuzz_test);
return 0;
}