1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00
samba-mirror/lib/fuzzing
Andrew Bartlett ec4f6f8fd3 lib/fuzzing/oss-fuzz: add stub build.sh that will not change often
This makes local development of build_samba.sh easier as it will remain in the source tree.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Uri Simchoni <uri@samba.org>
2019-11-20 23:19:35 +00:00
..
oss-fuzz lib/fuzzing/oss-fuzz: add stub build.sh that will not change often 2019-11-20 23:19:35 +00:00
fuzz_ldap_decode.c Add fuzzing binary for ldap_decode 2019-10-18 07:31:45 +00:00
fuzz_ldb_parse_tree.c Add fuzzing binary for ldb_parse_tree 2019-10-18 07:31:45 +00:00
fuzz_lzxpress.c Add fuzzing binary for lzxpress 2019-10-18 07:31:45 +00:00
fuzz_oLschema2ldif.c lib/fuzzing: Avoid NULL pointer de-ref from 0-length input 2019-11-18 19:39:30 +00:00
fuzz_reg_parse.c Add fuzzing binary for reg_parse 2019-10-18 07:31:45 +00:00
fuzz_regfio.c Add fuzzing binary for regfio 2019-10-18 07:31:45 +00:00
fuzz_tiniparser.c lib/fuzzing: Free memory after successful load in fuzz_tiniparser 2019-11-18 21:02:52 +00:00
fuzzing.c Add fuzzing support to build system 2019-08-07 06:07:28 +00:00
fuzzing.h Add fuzzing support to build system 2019-08-07 06:07:28 +00:00
README.md Add fuzzing support to build system 2019-08-07 06:07:28 +00:00
wscript_build lib/fuzzing: Use --fuzz-target-ldflags if specified 2019-11-20 23:19:35 +00:00

Fuzzing Samba

Fuzzing supplies valid, invalid, unexpected or random data as input to a piece of code. Instrumentation, usually compiler-implemented, is used to monitor for exceptions such as crashes, assertions or memory corruption.

See Wikipedia article on fuzzing for more information.

Configure with fuzzing

Example command line to build binaries for use with honggfuzz:

buildtools/bin/waf -C --without-gettext --enable-debug --enable-developer \
	--address-sanitizer --enable-libfuzzer \
	CC=.../honggfuzz/hfuzz_cc/hfuzz-clang configure \
	LINK_CC=.../honggfuzz/hfuzz_cc/hfuzz-clang

Fuzzing tiniparser

Example for fuzzing tiniparser using honggfuzz (see --help for more options):

buildtools/bin/waf --targets=fuzz_tiniparser build && \
.../honggfuzz/honggfuzz --sanitizers --timeout 3 --max_file_size 256 \
  --rlimit_rss 100 -f .../tiniparser-corpus -- bin/fuzz_tiniparser

vim: set sw=8 sts=8 ts=8 tw=79 :