From cd0cb1e731abc5f0148eadbaff460937b8e09e35 Mon Sep 17 00:00:00 2001 From: Alexandre DOYEN Date: Sun, 4 May 2025 11:36:01 +0200 Subject: [PATCH] Setting the AFL_I_AM_THE_FORKSERVER environment variable in the begining of the forkserver child process, and unsetting it when the target is launched --- instrumentation/afl-compiler-rt.o.c | 1 + src/afl-forkserver.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/instrumentation/afl-compiler-rt.o.c b/instrumentation/afl-compiler-rt.o.c index cba6436f..33899c84 100644 --- a/instrumentation/afl-compiler-rt.o.c +++ b/instrumentation/afl-compiler-rt.o.c @@ -1046,6 +1046,7 @@ static void __afl_start_forkserver(void) { /* In child process: close fds, resume execution. */ if (unlikely(!child_pid)) { // just to signal afl-fuzz faster + unsetenv("AFL_I_AM_THE_FORKSERVER"); //(void)nice(-20); diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c index 3fc86b3b..17685529 100644 --- a/src/afl-forkserver.c +++ b/src/afl-forkserver.c @@ -878,6 +878,8 @@ void afl_fsrv_start(afl_forkserver_t *fsrv, char **argv, /* CHILD PROCESS */ + setenv("AFL_I_AM_THE_FORKSERVER", "1", 0); + // enable terminating on sigpipe in the children struct sigaction sa; memset((char *)&sa, 0, sizeof(sa));