From 82b6b8c87e1bc5394349fd2931b306f671c4da1a Mon Sep 17 00:00:00 2001 From: Rick van Schijndel Date: Thu, 23 Apr 2020 23:16:13 +0200 Subject: afl-gcc and afl-clang: fail when binary name can't be used to determine build mode This is a continuation of PR #318. The goal is to prevent issues where binaries with the wrong name will silently pass control to the C compiler instead of failing. This makes it more explicit that aflplusplus relies on the name of the binary for correct compiler execution. --- gcc_plugin/afl-gcc-fast.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'gcc_plugin') diff --git a/gcc_plugin/afl-gcc-fast.c b/gcc_plugin/afl-gcc-fast.c index 0e51ee62..164c72c2 100644 --- a/gcc_plugin/afl-gcc-fast.c +++ b/gcc_plugin/afl-gcc-fast.c @@ -123,11 +123,17 @@ static void edit_params(u32 argc, char **argv) { u8 *alt_cxx = getenv("AFL_CXX"); cc_params[0] = alt_cxx && *alt_cxx ? alt_cxx : (u8 *)AFL_GCC_CXX; - } else { + } else if (!strcmp(name, "afl-gcc-fast")) { u8 *alt_cc = getenv("AFL_CC"); cc_params[0] = alt_cc && *alt_cc ? alt_cc : (u8 *)AFL_GCC_CC; + } else { + + fprintf(stderr, "Name of the binary: %s\n", argv[0]); + FATAL( + "Name of the binary is not a known name, expected afl-(gcc|g++)-fast"); + } char *fplugin_arg = alloc_printf("-fplugin=%s/afl-gcc-pass.so", obj_path); -- cgit 1.4.1 From 232290108e2792034836193fa768562ef4476959 Mon Sep 17 00:00:00 2001 From: van Hauser Date: Sat, 25 Apr 2020 12:51:14 +0200 Subject: only build afl-gcc-fast if afl-gcc-pass could be build --- gcc_plugin/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'gcc_plugin') diff --git a/gcc_plugin/Makefile b/gcc_plugin/Makefile index 3da2e4f6..e81924e0 100644 --- a/gcc_plugin/Makefile +++ b/gcc_plugin/Makefile @@ -68,8 +68,7 @@ LDFLAGS_ADD=$(_LDFLAGS_ADD:0=-lrt) CFLAGS += $(CFLAGS_ADD) LDFLAGS += $(LDFLAGS_ADD) -PROGS = ../afl-gcc-fast ../afl-gcc-pass.so ../afl-gcc-rt.o - +PROGS = ../afl-gcc-pass.so ../afl-gcc-fast ../afl-gcc-rt.o all: test_shm test_deps $(PROGS) afl-gcc-fast.8 test_build all_done -- cgit 1.4.1