|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 1/2] Add libfuzzer target to fuzz/x86_instruction_emulator
This target enables integration into oss-fuzz.
Signed-off-by: Tamas K Lengyel <tamas@xxxxxxxxxxxxx>
---
tools/fuzz/x86_instruction_emulator/Makefile | 10 ++++++++--
tools/fuzz/x86_instruction_emulator/fuzz-emul.c | 6 ++----
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/tools/fuzz/x86_instruction_emulator/Makefile
b/tools/fuzz/x86_instruction_emulator/Makefile
index 1e4c6b37f5..de5f1e7e30 100644
--- a/tools/fuzz/x86_instruction_emulator/Makefile
+++ b/tools/fuzz/x86_instruction_emulator/Makefile
@@ -3,7 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
.PHONY: x86-insn-fuzz-all
ifeq ($(CONFIG_X86_64),y)
-x86-insn-fuzz-all: x86-insn-fuzzer.a fuzz-emul.o afl
+x86-insn-fuzz-all: x86-insn-fuzzer.a fuzz-emul.o afl libfuzzer
else
x86-insn-fuzz-all:
endif
@@ -58,6 +58,9 @@ afl-harness: afl-harness.o $(OBJS) cpuid.o wrappers.o
afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) cpuid.o
wrappers.o
$(CC) $(CFLAGS) $(GCOV_FLAGS) $(addprefix
-Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
+libfuzzer-harness: $(OBJS) cpuid.o
+ $(CC) $(CFLAGS) $(LIB_FUZZING_ENGINE) -fsanitize=fuzzer $^ -o $@
+
# Common targets
.PHONY: all
all: x86-insn-fuzz-all
@@ -67,7 +70,7 @@ distclean: clean
.PHONY: clean
clean:
- rm -f *.a *.o $(DEPS_RM) afl-harness afl-harness-cov *.gcda *.gcno
*.gcov
+ rm -f *.a *.o $(DEPS_RM) afl-harness afl-harness-cov *.gcda *.gcno
*.gcov libfuzzer-harness
rm -rf x86_emulate x86-emulate.c x86-emulate.h wrappers.c cpuid.c
.PHONY: install
@@ -81,4 +84,7 @@ afl: afl-harness
.PHONY: afl-cov
afl-cov: afl-harness-cov
+.PHONY: libfuzzer
+libfuzzer: libfuzzer-harness
+
-include $(DEPS_INCLUDE)
diff --git a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
index eeeb6931f4..2ba9ca9e0b 100644
--- a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
+++ b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
@@ -906,14 +906,12 @@ int LLVMFuzzerTestOneInput(const uint8_t *data_p, size_t
size)
if ( size <= DATA_OFFSET )
{
- printf("Input too small\n");
- return 1;
+ return -1;
}
if ( size > FUZZ_CORPUS_SIZE )
{
- printf("Input too large\n");
- return 1;
+ return -1;
}
memcpy(&input, data_p, size);
--
2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |