print OKF if an environment variable is successfully loaded - feebdack to this please ...

This commit is contained in:
van Hauser
2020-02-29 20:49:16 +01:00
parent 76ca6adbc5
commit 95322c11d9
11 changed files with 66 additions and 50 deletions

View File

@ -34,5 +34,6 @@ void check_environment_vars(char** env);
char** get_qemu_argv(u8* own_loc, char** argv, int argc);
char** get_wine_argv(u8* own_loc, char** argv, int argc);
char* get_afl_env(char* env);
#endif

View File

@ -77,7 +77,7 @@ static s32 dev_null_fd = -1; /* FD to /dev/null */
u8 edges_only, /* Ignore hit counts? */
use_hex_offsets, /* Show hex offsets? */
use_stdin = 1; /* Use stdin for program input? */
be_quiet, use_stdin = 1; /* Use stdin for program input? */
static volatile u8 stop_soon, /* Ctrl-C pressed? */
child_timed_out; /* Child timed out? */
@ -660,7 +660,7 @@ static void set_up_environment(void) {
if (access(use_dir, R_OK | W_OK | X_OK)) {
use_dir = getenv("TMPDIR");
use_dir = get_afl_env("TMPDIR");
if (!use_dir) use_dir = "/tmp";
}
@ -671,7 +671,7 @@ static void set_up_environment(void) {
/* Set sane defaults... */
x = getenv("ASAN_OPTIONS");
x = get_afl_env("ASAN_OPTIONS");
if (x) {
@ -683,7 +683,7 @@ static void set_up_environment(void) {
}
x = getenv("MSAN_OPTIONS");
x = get_afl_env("MSAN_OPTIONS");
if (x) {
@ -709,7 +709,7 @@ static void set_up_environment(void) {
"allocator_may_return_null=1:"
"msan_track_origins=0", 0);
if (getenv("AFL_PRELOAD")) {
if (get_afl_env("AFL_PRELOAD")) {
if (qemu_mode) {
@ -995,7 +995,7 @@ int main(int argc, char** argv, char** envp) {
if (optind == argc || !in_file) usage(argv[0]);
use_hex_offsets = !!getenv("AFL_ANALYZE_HEX");
use_hex_offsets = !!get_afl_env("AFL_ANALYZE_HEX");
check_environment_vars(envp);
setup_shm(0);
@ -1030,7 +1030,7 @@ int main(int argc, char** argv, char** envp) {
if (child_timed_out)
FATAL("Target binary times out (adjusting -t may help).");
if (getenv("AFL_SKIP_BIN_CHECK") == NULL && !anything_set())
if (get_afl_env("AFL_SKIP_BIN_CHECK") == NULL && !anything_set())
FATAL("No instrumentation detected.");
analyze(use_argv);

View File

@ -38,6 +38,7 @@
u8* target_path; /* Path to target binary */
extern u8 use_stdin;
extern u8 be_quiet;
void detect_file_args(char** argv, u8* prog_in) {
@ -313,3 +314,15 @@ void check_environment_vars(char** envp) {
}
char* get_afl_env(char* env) {
char* val;
if ((val = getenv(env)) != NULL)
if (!be_quiet)
OKF("Loaded environment variable %s with value %s\n", env, val);
return val;
}

View File

@ -27,6 +27,7 @@
#include "config.h"
#include "types.h"
#include "debug.h"
#include "common.h"
#include "forkserver.h"
#include <stdio.h>
@ -206,7 +207,7 @@ void init_forkserver(char **argv) {
setsid();
if (!getenv("AFL_DEBUG_CHILD_OUTPUT")) {
if (!get_afl_env("AFL_DEBUG_CHILD_OUTPUT")) {
dup2(dev_null_fd, 1);
dup2(dev_null_fd, 2);

View File

@ -88,7 +88,7 @@ void init_cmplog_forkserver(char** argv) {
setsid();
if (!getenv("AFL_DEBUG_CHILD_OUTPUT")) {
if (!get_afl_env("AFL_DEBUG_CHILD_OUTPUT")) {
dup2(dev_null_fd, 1);
dup2(dev_null_fd, 2);

View File

@ -87,6 +87,7 @@ u8 cal_cycles = CAL_CYCLES, /* Calibration cycles defaults */
debug, /* Debug mode */
no_unlink, /* do not unlink cur_input */
use_stdin = 1, /* use stdin for sending data */
be_quiet, /* is AFL_QUIET set? */
custom_only, /* Custom mutator only mode */
python_only; /* Python-only mode */

View File

@ -275,7 +275,7 @@ cpuset_destroy(c);
void setup_post(void) {
void* dh;
u8* fn = getenv("AFL_POST_LIBRARY");
u8* fn = get_afl_env("AFL_POST_LIBRARY");
u32 tlen = 6;
if (!fn) return;
@ -476,7 +476,7 @@ void perform_dry_run(char** argv) {
struct queue_entry* q = queue;
u32 cal_failures = 0;
u8* skip_crashes = getenv("AFL_SKIP_CRASHES");
u8* skip_crashes = get_afl_env("AFL_SKIP_CRASHES");
while (q) {
@ -1499,7 +1499,7 @@ void check_crash_handling(void) {
" sudo launchctl unload -w ${SL}/LaunchDaemons/${PL}.Root.plist\n");
#endif
if (!getenv("AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES"))
if (!get_afl_env("AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES"))
FATAL("Crash reporter detected");
#else
@ -1551,7 +1551,7 @@ void check_cpu_governor(void) {
u8 tmp[128];
u64 min = 0, max = 0;
if (getenv("AFL_SKIP_CPUFREQ")) return;
if (get_afl_env("AFL_SKIP_CPUFREQ")) return;
if (cpu_aff > 0)
snprintf(tmp, sizeof(tmp), "%s%d%s", "/sys/devices/system/cpu/cpu", cpu_aff,
@ -1632,7 +1632,7 @@ void check_cpu_governor(void) {
#elif defined __APPLE__
u64 min = 0, max = 0;
size_t mlen = sizeof(min);
if (getenv("AFL_SKIP_CPUFREQ")) return;
if (get_afl_env("AFL_SKIP_CPUFREQ")) return;
ACTF("Checking CPU scaling governor...");
@ -1805,7 +1805,7 @@ static void handle_resize(int sig) {
void check_asan_opts(void) {
u8* x = getenv("ASAN_OPTIONS");
u8* x = get_afl_env("ASAN_OPTIONS");
if (x) {
@ -1817,7 +1817,7 @@ void check_asan_opts(void) {
}
x = getenv("MSAN_OPTIONS");
x = get_afl_env("MSAN_OPTIONS");
if (x) {
@ -1913,7 +1913,7 @@ void check_binary(u8* fname) {
}
if (getenv("AFL_SKIP_BIN_CHECK") || use_wine) return;
if (get_afl_env("AFL_SKIP_BIN_CHECK") || use_wine) return;
/* Check for blatant user errors. */
@ -2082,7 +2082,7 @@ void check_if_tty(void) {
struct winsize ws;
if (getenv("AFL_NO_UI")) {
if (get_afl_env("AFL_NO_UI")) {
OKF("Disabling the UI because AFL_NO_UI is set.");
not_on_tty = 1;

View File

@ -267,10 +267,10 @@ void show_stats(void) {
/* Honor AFL_EXIT_WHEN_DONE and AFL_BENCH_UNTIL_CRASH. */
if (!dumb_mode && cycles_wo_finds > 100 && !pending_not_fuzzed &&
getenv("AFL_EXIT_WHEN_DONE"))
get_afl_env("AFL_EXIT_WHEN_DONE"))
stop_soon = 2;
if (total_crashes && getenv("AFL_BENCH_UNTIL_CRASH")) stop_soon = 2;
if (total_crashes && get_afl_env("AFL_BENCH_UNTIL_CRASH")) stop_soon = 2;
/* If we're not on TTY, bail out. */
@ -829,7 +829,7 @@ void show_init_stats(void) {
/* In dumb mode, re-running every timing out test case with a generous time
limit is very expensive, so let's select a more conservative default. */
if (dumb_mode && !getenv("AFL_HANG_TMOUT"))
if (dumb_mode && !get_afl_env("AFL_HANG_TMOUT"))
hang_tmout = MIN(EXEC_TIMEOUT, exec_tmout * 2 + 100);
OKF("All set and ready to roll!");

View File

@ -228,7 +228,7 @@ int main(int argc, char** argv, char** envp) {
u32 sync_interval_cnt = 0, seek_to, show_help = 0;
u8* extras_dir = 0;
u8 mem_limit_given = 0;
u8 exit_1 = !!getenv("AFL_BENCH_JUST_ONE");
u8 exit_1 = !!get_afl_env("AFL_BENCH_JUST_ONE");
char** use_argv;
struct timeval tv;
@ -461,7 +461,7 @@ int main(int argc, char** argv, char** envp) {
case 'n': /* dumb mode */
if (dumb_mode) FATAL("Multiple -n options not supported");
if (getenv("AFL_DUMB_FORKSRV"))
if (get_afl_env("AFL_DUMB_FORKSRV"))
dumb_mode = 2;
else
dumb_mode = 1;
@ -715,7 +715,7 @@ int main(int argc, char** argv, char** envp) {
}
if (getenv("AFL_DISABLE_TRIM")) disable_trim = 1;
if (get_afl_env("AFL_DISABLE_TRIM")) disable_trim = 1;
if (getenv("AFL_NO_UI") && getenv("AFL_FORCE_UI"))
FATAL("AFL_NO_UI and AFL_FORCE_UI are mutually exclusive");
@ -744,13 +744,13 @@ int main(int argc, char** argv, char** envp) {
}
if (getenv("AFL_NO_FORKSRV")) no_forkserver = 1;
if (getenv("AFL_NO_CPU_RED")) no_cpu_meter_red = 1;
if (getenv("AFL_NO_ARITH")) no_arith = 1;
if (getenv("AFL_SHUFFLE_QUEUE")) shuffle_queue = 1;
if (getenv("AFL_FAST_CAL")) fast_cal = 1;
if (get_afl_env("AFL_NO_FORKSRV")) no_forkserver = 1;
if (get_afl_env("AFL_NO_CPU_RED")) no_cpu_meter_red = 1;
if (get_afl_env("AFL_NO_ARITH")) no_arith = 1;
if (get_afl_env("AFL_SHUFFLE_QUEUE")) shuffle_queue = 1;
if (get_afl_env("AFL_FAST_CAL")) fast_cal = 1;
if (getenv("AFL_HANG_TMOUT")) {
if (get_afl_env("AFL_HANG_TMOUT")) {
hang_tmout = atoi(getenv("AFL_HANG_TMOUT"));
if (!hang_tmout) FATAL("Invalid value of AFL_HANG_TMOUT");
@ -765,7 +765,7 @@ int main(int argc, char** argv, char** envp) {
"LD_PRELOAD is set, are you sure that is what to you want to do "
"instead of using AFL_PRELOAD?");
if (getenv("AFL_PRELOAD")) {
if (get_afl_env("AFL_PRELOAD")) {
if (qemu_mode) {
@ -811,9 +811,9 @@ int main(int argc, char** argv, char** envp) {
fix_up_banner(argv[optind]);
check_if_tty();
if (getenv("AFL_FORCE_UI")) not_on_tty = 0;
if (get_afl_env("AFL_FORCE_UI")) not_on_tty = 0;
if (getenv("AFL_CAL_FAST")) {
if (get_afl_env("AFL_CAL_FAST")) {
/* Use less calibration cycles, for slow applications */
cal_cycles = 3;
@ -821,9 +821,9 @@ int main(int argc, char** argv, char** envp) {
}
if (getenv("AFL_DEBUG")) debug = 1;
if (get_afl_env("AFL_DEBUG")) debug = 1;
if (getenv("AFL_PYTHON_ONLY")) {
if (get_afl_env("AFL_PYTHON_ONLY")) {
/* This ensures we don't proceed to havoc/splice */
python_only = 1;
@ -833,7 +833,7 @@ int main(int argc, char** argv, char** envp) {
}
if (getenv("AFL_CUSTOM_MUTATOR_ONLY")) {
if (get_afl_env("AFL_CUSTOM_MUTATOR_ONLY")) {
/* This ensures we don't proceed to havoc/splice */
custom_only = 1;
@ -882,7 +882,7 @@ int main(int argc, char** argv, char** envp) {
if (!timeout_given) find_timeout();
if ((tmp_dir = getenv("AFL_TMPDIR")) != NULL && !in_place_resume) {
if ((tmp_dir = get_afl_env("AFL_TMPDIR")) != NULL && !in_place_resume) {
char tmpfile[file_extension
? strlen(tmp_dir) + 1 + 10 + 1 + strlen(file_extension) + 1
@ -1046,7 +1046,7 @@ int main(int argc, char** argv, char** envp) {
prev_queued = queued_paths;
if (sync_id && queue_cycle == 1 && getenv("AFL_IMPORT_FIRST"))
if (sync_id && queue_cycle == 1 && get_afl_env("AFL_IMPORT_FIRST"))
sync_fuzzers(use_argv);
}

View File

@ -72,7 +72,7 @@ s32 dev_null_fd = -1; /* FD to /dev/null */
s32 out_fd = -1, out_dir_fd = -1, dev_urandom_fd = -1;
FILE* plot_file;
u8 uses_asan;
u8 uses_asan, be_quiet;
u8* trace_bits; /* SHM with instrumentation bitmap */
@ -173,8 +173,8 @@ static u32 write_results_to_file(u8* out_file) {
s32 fd;
u32 i, ret = 0;
u8 cco = !!getenv("AFL_CMIN_CRASHES_ONLY"),
caa = !!getenv("AFL_CMIN_ALLOW_ANY");
u8 cco = !!get_afl_env("AFL_CMIN_CRASHES_ONLY"),
caa = !!get_afl_env("AFL_CMIN_ALLOW_ANY");
if (!strncmp(out_file, "/dev/", 5)) {
@ -541,7 +541,7 @@ static void set_up_environment(void) {
"allocator_may_return_null=1:"
"msan_track_origins=0", 0);
if (getenv("AFL_PRELOAD")) {
if (get_afl_env("AFL_PRELOAD")) {
if (qemu_mode) {
@ -955,7 +955,7 @@ int main(int argc, char** argv, char** envp) {
if (access(use_dir, R_OK | W_OK | X_OK)) {
use_dir = getenv("TMPDIR");
use_dir = get_afl_env("TMPDIR");
if (!use_dir) use_dir = "/tmp";
}
@ -968,7 +968,7 @@ int main(int argc, char** argv, char** envp) {
if (arg_offset) argv[arg_offset] = stdin_file;
if (getenv("AFL_DEBUG")) {
if (get_afl_env("AFL_DEBUG")) {
int i = optind;
SAYF(cMGN "[D]" cRST " %s:", target_path);

View File

@ -92,7 +92,7 @@ u8 crash_mode, /* Crash-centric mode? */
exit_crash, /* Treat non-zero exit as crash? */
edges_only, /* Ignore hit counts? */
exact_mode, /* Require path match for crashes? */
use_stdin = 1; /* Use stdin for program input? */
be_quiet, use_stdin = 1; /* Use stdin for program input? */
static volatile u8 stop_soon; /* Ctrl-C pressed? */
@ -829,7 +829,7 @@ static void set_up_environment(void) {
if (access(use_dir, R_OK | W_OK | X_OK)) {
use_dir = getenv("TMPDIR");
use_dir = get_afl_env("TMPDIR");
if (!use_dir) use_dir = "/tmp";
}
@ -846,7 +846,7 @@ static void set_up_environment(void) {
/* Set sane defaults... */
x = getenv("ASAN_OPTIONS");
x = get_afl_env("ASAN_OPTIONS");
if (x) {
@ -858,7 +858,7 @@ static void set_up_environment(void) {
}
x = getenv("MSAN_OPTIONS");
x = get_afl_env("MSAN_OPTIONS");
if (x) {
@ -884,7 +884,7 @@ static void set_up_environment(void) {
"allocator_may_return_null=1:"
"msan_track_origins=0", 0);
if (getenv("AFL_PRELOAD")) {
if (get_afl_env("AFL_PRELOAD")) {
if (qemu_mode) {
@ -1240,7 +1240,7 @@ int main(int argc, char** argv, char** envp) {
use_argv = argv + optind;
exact_mode = !!getenv("AFL_TMIN_EXACT");
exact_mode = !!get_afl_env("AFL_TMIN_EXACT");
SAYF("\n");