diff options
author | Matt Johnston <matt@ucc.asn.au> | 2020-10-24 22:40:08 +0800 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2020-10-24 22:40:08 +0800 |
commit | c7cfa75e92c2fd00bcf1336973c51fa10d05610f (patch) | |
tree | 8df0831e88f2e4c926ddc33d6d2300ae4bafb82b /fuzz.h | |
parent | cb252296c56bad82a053bd2de056d489505101be (diff) |
Disable stderr output for fuzzer by default
Diffstat (limited to 'fuzz.h')
-rw-r--r-- | fuzz.h | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -15,6 +15,10 @@ void fuzz_common_setup(void); void fuzz_svr_setup(void); void fuzz_cli_setup(void); +// constructor attribute so it runs before main(), including +// in non-fuzzing mode. +void fuzz_early_setup(void) __attribute__((constructor)); + // must be called once per fuzz iteration. // returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE int fuzz_set_input(const uint8_t *Data, size_t Size); @@ -68,10 +72,21 @@ struct dropbear_fuzz_options { int dumping; // the file descriptor int recv_dumpfd; + + // avoid filling fuzzing logs, this points to /dev/null + FILE *stderr; }; extern struct dropbear_fuzz_options fuzz; +/* This is a bodge but seems to work. + glibc stdio.h has the comment + "C89/C99 say they're macros. Make them happy." */ +#ifdef stderr +#undef stderr +#endif +#define stderr (fuzz.stderr) + #endif // DROPBEAR_FUZZ #endif /* DROPBEAR_FUZZ_H */ |