aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniil Kuts <13482580+apach301@users.noreply.github.com>2022-05-27 13:52:31 +0300
committerGitHub <noreply@github.com>2022-05-27 12:52:31 +0200
commitc96238d85f4a784402db6cbf16630b977617eb1a (patch)
tree426799e929930c90ce2619b1aaa9944c6d400502 /src
parent4103ee43e249ee14bd16baf080489a107bbfdbf5 (diff)
downloadafl++-c96238d85f4a784402db6cbf16630b977617eb1a.tar.gz
Add AFL_SYNC_TIME variable for synchronization time tuning (#1425)
* Add AFL_SYNC_TIME variable for synchronization time tuning * Documentation for AFL_SYNC_TIME variable
Diffstat (limited to 'src')
-rw-r--r--src/afl-fuzz-state.c12
-rw-r--r--src/afl-fuzz.c5
2 files changed, 15 insertions, 2 deletions
diff --git a/src/afl-fuzz-state.c b/src/afl-fuzz-state.c
index 98217438..cbe32c75 100644
--- a/src/afl-fuzz-state.c
+++ b/src/afl-fuzz-state.c
@@ -101,6 +101,7 @@ void afl_state_init(afl_state_t *afl, uint32_t map_size) {
afl->stats_update_freq = 1;
afl->stats_avg_exec = 0;
afl->skip_deterministic = 1;
+ afl->sync_time = SYNC_TIME;
afl->cmplog_lvl = 2;
afl->min_length = 1;
afl->max_length = MAX_FILE;
@@ -519,6 +520,17 @@ void read_afl_environment(afl_state_t *afl, char **envp) {
}
+ } else if (!strncmp(env, "AFL_SYNC_TIME",
+
+ afl_environment_variable_len)) {
+
+ int time = atoi((u8 *)get_afl_env(afl_environment_variables[i]));
+ if (time > 0) {
+ afl->sync_time = time * (60 * 1000LL);
+ } else {
+ WARNF("incorrect value for AFL_SYNC_TIME environment variable, "
+ "used default value %lld instead.", afl->sync_time / 60 / 1000);
+ }
}
} else {
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index c5ab364a..7c33ba29 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -295,6 +295,7 @@ static void usage(u8 *argv0, int more_help) {
"AFL_STATSD_TAGS_FLAVOR: set statsd tags format (default: disable tags)\n"
" Supported formats are: 'dogstatsd', 'librato',\n"
" 'signalfx' and 'influxdb'\n"
+ "AFL_SYNC_TIME: sync time between fuzzing instances (in minutes)\n"
"AFL_TESTCACHE_SIZE: use a cache for testcases, improves performance (in MB)\n"
"AFL_TMPDIR: directory to use for input file generation (ramdisk recommended)\n"
"AFL_EARLY_FORKSERVER: force an early forkserver in an afl-clang-fast/\n"
@@ -2511,7 +2512,7 @@ int main(int argc, char **argv_orig, char **envp) {
if (unlikely(afl->is_main_node)) {
if (unlikely(get_cur_time() >
- (SYNC_TIME >> 1) + afl->last_sync_time)) {
+ (afl->sync_time >> 1) + afl->last_sync_time)) {
if (!(sync_interval_cnt++ % (SYNC_INTERVAL / 3))) {
@@ -2523,7 +2524,7 @@ int main(int argc, char **argv_orig, char **envp) {
} else {
- if (unlikely(get_cur_time() > SYNC_TIME + afl->last_sync_time)) {
+ if (unlikely(get_cur_time() > afl->sync_time + afl->last_sync_time)) {
if (!(sync_interval_cnt++ % SYNC_INTERVAL)) { sync_fuzzers(afl); }