From 0c26e43486a5430158d17e3c1fc17cb00f70ad3a Mon Sep 17 00:00:00 2001 From: Kuang-che Wu Date: Fri, 19 Nov 2021 12:09:35 +0800 Subject: [PATCH] fork server: restore SIGCHLD handler for child process --- instrumentation/afl-compiler-rt.o.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/instrumentation/afl-compiler-rt.o.c b/instrumentation/afl-compiler-rt.o.c index 2bfa8b7d..1999039d 100644 --- a/instrumentation/afl-compiler-rt.o.c +++ b/instrumentation/afl-compiler-rt.o.c @@ -670,8 +670,7 @@ static void __afl_start_snapshots(void) { u8 child_stopped = 0; - signal(SIGCHLD, SIG_DFL); - void (*old_sigchld_handler)(int) = 0; + void (*old_sigchld_handler)(int) = signal(SIGCHLD, SIG_DFL); /* Phone home and tell the parent that we're OK. If parent isn't there, assume we're not running in forkserver mode and just execute program. */ @@ -927,8 +926,7 @@ static void __afl_start_forkserver(void) { u8 child_stopped = 0; - signal(SIGCHLD, SIG_DFL); - void (*old_sigchld_handler)(int) = 0; + void (*old_sigchld_handler)(int) = signal(SIGCHLD, SIG_DFL); if (__afl_map_size <= FS_OPT_MAX_MAPSIZE) {