aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2024-06-09 12:16:32 +0200
committervanhauser-thc <vh@thc.org>2024-06-09 12:16:32 +0200
commit4bb4d4ad0060a16b08bb29533863e71f45bc3c97 (patch)
treee05fe1e4ca149ad67621e75115a6ee029e4be4fb /src
parent5331eca5d935e9d5faef06fe6b5a38f411109fde (diff)
downloadafl++-4bb4d4ad0060a16b08bb29533863e71f45bc3c97.tar.gz
fix -n
Diffstat (limited to 'src')
-rw-r--r--src/afl-fuzz-state.c3
-rw-r--r--src/afl-fuzz.c15
2 files changed, 10 insertions, 8 deletions
diff --git a/src/afl-fuzz-state.c b/src/afl-fuzz-state.c
index a1c1e30c..fbe6d32a 100644
--- a/src/afl-fuzz-state.c
+++ b/src/afl-fuzz-state.c
@@ -769,8 +769,9 @@ void afl_states_stop(void) {
if (el->fsrv.fsrv_pid > 0) {
kill(el->fsrv.fsrv_pid, el->fsrv.fsrv_kill_signal);
+ usleep(100);
/* Make sure the forkserver does not end up as zombie. */
- waitpid(el->fsrv.fsrv_pid, NULL, 0);
+ waitpid(el->fsrv.fsrv_pid, NULL, WNOHANG);
}
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index 9ebe0c76..fefab1c0 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -1469,15 +1469,16 @@ int main(int argc, char **argv_orig, char **envp) {
#endif
- configure_afl_kill_signals(&afl->fsrv, afl->afl_env.afl_child_kill_signal,
- afl->afl_env.afl_fsrv_kill_signal,
- (afl->fsrv.qemu_mode || afl->unicorn_mode
+ configure_afl_kill_signals(
+ &afl->fsrv, afl->afl_env.afl_child_kill_signal,
+ afl->afl_env.afl_fsrv_kill_signal,
+ (afl->fsrv.qemu_mode || afl->unicorn_mode || afl->non_instrumented_mode
#ifdef __linux__
- || afl->fsrv.nyx_mode
+ || afl->fsrv.nyx_mode
#endif
- )
- ? SIGKILL
- : SIGTERM);
+ )
+ ? SIGKILL
+ : SIGTERM);
setup_signal_handlers();
check_asan_opts(afl);