AFL + Libfuzzer harnesses (#455)

* Package fuzzers

* Provide ability to remove main

* Don't build fuzzers by default
This commit is contained in:
anthony-crystalpeak
2023-07-17 08:06:32 -07:00
committed by GitHub
parent 9e7f8978fa
commit fcc9647983
9 changed files with 558 additions and 0 deletions
+32
View File
@@ -196,6 +196,30 @@ ifeq (${BACNET_PORT},win32)
SUBDIRS += mstpcap mstpcrc
endif
#####
# Define target-specific fuzzing flags
#####
# AFL
fuzz-afl: CC=afl-gcc
fuzz-afl: FUZZ_FLAGS=-DFUZZING=1
fuzz-afl: LFLAGS += $(FUZZ_FLAGS)
fuzz-afl: CFLAGS += $(FUZZ_FLAGS)
fuzz-afl: export AFL_USE_ASAN=1
# LIBFUZZER
fuzz-libfuzzer: CC=clang
fuzz-libfuzzer: FUZZ_FLAGS=-DFUZZING=1 -fsanitize=fuzzer,address -g3 -Og -fno-optimize-sibling-calls -fno-omit-frame-pointer
fuzz-libfuzzer: LFLAGS += $(FUZZ_FLAGS)
fuzz-libfuzzer: CFLAGS += $(FUZZ_FLAGS)
#####
# Fuzz setup end
#####
.PHONY: all clean
TARGETS = all clean
@@ -354,6 +378,14 @@ router-ipv6: $(BACNET_LIB_TARGET)
router-mstp: $(BACNET_LIB_TARGET)
$(MAKE) -B -C $@
.PHONY: fuzz-libfuzzer
fuzz-libfuzzer: $(BACNET_LIB_TARGET)
$(MAKE) -B -C $@
.PHONY: fuzz-afl
fuzz-afl: $(BACNET_LIB_TARGET)
$(MAKE) -B -C $@
.PHONY: writepropm
writepropm: $(BACNET_LIB_TARGET)
$(MAKE) -B -C $@