mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-17 12:18:08 +00:00
cleaned up AFL_KILL_SIGNAL
This commit is contained in:
@ -693,12 +693,13 @@ static void usage(u8 *argv0) {
|
||||
"AFL_CRASH_EXITCODE: optional child exit code to be interpreted as "
|
||||
"crash\n"
|
||||
"AFL_DEBUG: enable extra developer output\n"
|
||||
"AFL_MAP_SIZE: the shared memory size for that target. must be >= the "
|
||||
"size\n"
|
||||
" the target was compiled for\n"
|
||||
"AFL_PRELOAD: LD_PRELOAD / DYLD_INSERT_LIBRARIES settings for target\n"
|
||||
"AFL_FORKSRV_INIT_TMOUT: time spent waiting for forkserver during "
|
||||
"startup (in milliseconds)\n"
|
||||
"AFL_KILL_SIGNAL: Signal ID delivered to child processes on timeout, "
|
||||
"etc. (default: SIGKILL)\n"
|
||||
"AFL_MAP_SIZE: the shared memory size for that target. must be >= the "
|
||||
"size the target was compiled for\n"
|
||||
"AFL_PRELOAD: LD_PRELOAD / DYLD_INSERT_LIBRARIES settings for target\n"
|
||||
"AFL_QUIET: do not print extra informational output\n",
|
||||
argv0, MEM_LIMIT, doc_path);
|
||||
|
||||
@ -1115,6 +1116,34 @@ int main(int argc, char **argv_orig, char **envp) {
|
||||
|
||||
}
|
||||
|
||||
fsrv->kill_signal = SIGKILL;
|
||||
char *afl_kill_signal_env = getenv("AFL_KILL_SIGNAL");
|
||||
if (afl_kill_signal_env && afl_kill_signal_env[0]) {
|
||||
|
||||
char *endptr;
|
||||
u8 signal_code;
|
||||
signal_code = (u8)strtoul(afl_kill_signal_env, &endptr, 10);
|
||||
/* Did we manage to parse the full string? */
|
||||
if (*endptr != '\0' || endptr == afl_kill_signal_env) {
|
||||
|
||||
FATAL("Invalid AFL_KILL_SIGNAL: %s (expected unsigned int)",
|
||||
afl_kill_signal_env);
|
||||
|
||||
}
|
||||
|
||||
fsrv->kill_signal = signal_code;
|
||||
|
||||
} else {
|
||||
|
||||
char *sigstr = alloc_printf("%d", (int)SIGKILL);
|
||||
if (!sigstr) { FATAL("Failed to alloc mem for signal buf"); }
|
||||
|
||||
/* Set the env for signal handler */
|
||||
setenv("AFL_KILL_SIGNAL", sigstr, 1);
|
||||
free(sigstr);
|
||||
|
||||
}
|
||||
|
||||
if (getenv("AFL_CRASH_EXITCODE")) {
|
||||
|
||||
long exitcode = strtol(getenv("AFL_CRASH_EXITCODE"), NULL, 10);
|
||||
|
Reference in New Issue
Block a user