Mercurial > dropbear
annotate fuzzer-preauth.c @ 1361:f9f930e1a516 fuzz
add dbmalloc epoch cleanup
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sun, 21 May 2017 10:54:11 +0800 |
parents | 6b89eb92f872 |
children | 17104db7928c |
rev | line source |
---|---|
1348 | 1 #include "fuzz.h" |
2 #include "dbrandom.h" | |
3 #include "session.h" | |
1356
3677a510f545
add wrapfd. improve fuzzer in makefile
Matt Johnston <matt@ucc.asn.au>
parents:
1348
diff
changeset
|
4 #include "fuzz-wrapfd.h" |
1358
6b89eb92f872
glaring wrapfd problems fixed
Matt Johnston <matt@ucc.asn.au>
parents:
1357
diff
changeset
|
5 #include "debug.h" |
1348 | 6 |
1356
3677a510f545
add wrapfd. improve fuzzer in makefile
Matt Johnston <matt@ucc.asn.au>
parents:
1348
diff
changeset
|
7 static void setup_fuzzer(void) { |
1348 | 8 svr_setup_fuzzer(); |
1358
6b89eb92f872
glaring wrapfd problems fixed
Matt Johnston <matt@ucc.asn.au>
parents:
1357
diff
changeset
|
9 //debug_trace = 1; |
1348 | 10 } |
11 | |
12 int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { | |
13 static int once = 0; | |
14 if (!once) { | |
15 setup_fuzzer(); | |
16 once = 1; | |
17 } | |
18 | |
1356
3677a510f545
add wrapfd. improve fuzzer in makefile
Matt Johnston <matt@ucc.asn.au>
parents:
1348
diff
changeset
|
19 if (fuzzer_set_input(Data, Size) == DROPBEAR_FAILURE) { |
3677a510f545
add wrapfd. improve fuzzer in makefile
Matt Johnston <matt@ucc.asn.au>
parents:
1348
diff
changeset
|
20 return 0; |
3677a510f545
add wrapfd. improve fuzzer in makefile
Matt Johnston <matt@ucc.asn.au>
parents:
1348
diff
changeset
|
21 } |
1348 | 22 |
1356
3677a510f545
add wrapfd. improve fuzzer in makefile
Matt Johnston <matt@ucc.asn.au>
parents:
1348
diff
changeset
|
23 int fakesock = 1; |
3677a510f545
add wrapfd. improve fuzzer in makefile
Matt Johnston <matt@ucc.asn.au>
parents:
1348
diff
changeset
|
24 wrapfd_add(fakesock, fuzz.input, PLAIN); |
1348 | 25 |
1361
f9f930e1a516
add dbmalloc epoch cleanup
Matt Johnston <matt@ucc.asn.au>
parents:
1358
diff
changeset
|
26 m_malloc_set_epoch(1); |
1348 | 27 if (setjmp(fuzz.jmp) == 0) { |
1356
3677a510f545
add wrapfd. improve fuzzer in makefile
Matt Johnston <matt@ucc.asn.au>
parents:
1348
diff
changeset
|
28 svr_session(fakesock, fakesock); |
1348 | 29 } else { |
1361
f9f930e1a516
add dbmalloc epoch cleanup
Matt Johnston <matt@ucc.asn.au>
parents:
1358
diff
changeset
|
30 m_malloc_free_epoch(1); |
1357 | 31 TRACE(("dropbear_exit longjmped")) |
1348 | 32 // dropbear_exit jumped here |
33 } | |
34 | |
35 return 0; | |
36 } |