about summary refs log tree commit diff
path: root/src/afl-common.c
diff options
context:
space:
mode:
authorNils Bars <nils.bars@rub.de>2022-10-24 17:52:04 +0200
committerNils Bars <nils.bars@rub.de>2022-10-24 17:54:03 +0200
commit102b749c0734165f1cb121397e4a4c307666b8eb (patch)
treed2a090fa114ede2091e752d3116ba8742f3dbcbb /src/afl-common.c
parent7512316b46a25180729ff8c568a6061a0ab19fea (diff)
downloadafl++-102b749c0734165f1cb121397e4a4c307666b8eb.tar.gz
AFL_FORK_SERVER_KILL_SIGNAL backwards compatiblity
If `AFL_KILL_SIGNAL` is set, `AFL_FORK_SERVER_KILL_SIGNAL` is set
to the same value.
Diffstat (limited to 'src/afl-common.c')
-rw-r--r--src/afl-common.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/afl-common.c b/src/afl-common.c
index 75b463ed..f2934817 100644
--- a/src/afl-common.c
+++ b/src/afl-common.c
@@ -25,6 +25,7 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include "forkserver.h"
 #ifndef _GNU_SOURCE
   #define _GNU_SOURCE
 #endif
@@ -47,6 +48,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#include <signal.h>
 
 u8  be_quiet = 0;
 u8 *doc_path = "";
@@ -476,6 +478,27 @@ int parse_afl_kill_signal(u8 *numeric_signal_as_str, int default_signal) {
   return default_signal;
 }
 
+void configure_afl_kill_signals(afl_forkserver_t *fsrv, char* afl_kill_signal_env, char* afl_fsrv_kill_signal_env) {
+  afl_kill_signal_env = afl_kill_signal_env ?
+    afl_kill_signal_env : getenv("AFL_KILL_SIGNAL");
+  afl_fsrv_kill_signal_env = afl_fsrv_kill_signal_env ?
+    afl_fsrv_kill_signal_env : getenv("AFL_FORK_SERVER_KILL_SIGNAL");
+
+  fsrv->child_kill_signal =
+      parse_afl_kill_signal(afl_kill_signal_env, SIGKILL);
+
+  if (afl_kill_signal_env && !afl_fsrv_kill_signal_env) {
+    /*
+    Set AFL_FORK_SERVER_KILL_SIGNAL to the value of AFL_KILL_SIGNAL for backwards
+    compatibility. However, if AFL_FORK_SERVER_KILL_SIGNAL is set, is takes precedence.
+    */
+    afl_fsrv_kill_signal_env = afl_kill_signal_env;
+  }
+  fsrv->fsrv_kill_signal =
+      parse_afl_kill_signal(afl_fsrv_kill_signal_env, SIGTERM);
+
+}
+
 static inline unsigned int helper_min3(unsigned int a, unsigned int b,
                                        unsigned int c) {