aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2024-02-03 13:31:31 +0100
committervanhauser-thc <vh@thc.org>2024-02-03 13:31:31 +0100
commitd85722a4f6329940545dd66bf16718d591fca681 (patch)
tree92e0c33e1cef665d7962f0e9ad4826f483b91016
parent68dc4829b394d07f09709a0bbc17008fa523705f (diff)
downloadafl++-d85722a4f6329940545dd66bf16718d591fca681.tar.gz
deterministic fuzzing and -z
-rw-r--r--docs/Changelog.md5
-rw-r--r--src/afl-fuzz-state.c2
-rw-r--r--src/afl-fuzz.c19
3 files changed, 13 insertions, 13 deletions
diff --git a/docs/Changelog.md b/docs/Changelog.md
index 48003f4b..2f0fba33 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -3,6 +3,11 @@
This is the list of all noteworthy changes made in every public
release of the tool. See README.md for the general instruction manual.
+### Version ++4.20a (dev)
+ - afl-fuzz:
+ - the new deterministic fuzzing feature is now activated by default,
+ deactivate with -z. Parameters -d and -D are ignored.
+
### Version ++4.10c (release)
- afl-fuzz:
- default power schedule is now EXPLORE, due a fix in fast schedules
diff --git a/src/afl-fuzz-state.c b/src/afl-fuzz-state.c
index 4467cae8..ae327117 100644
--- a/src/afl-fuzz-state.c
+++ b/src/afl-fuzz-state.c
@@ -102,7 +102,7 @@ void afl_state_init(afl_state_t *afl, uint32_t map_size) {
afl->stats_update_freq = 1;
afl->stats_file_update_freq_msecs = STATS_UPDATE_SEC * 1000;
afl->stats_avg_exec = 0;
- afl->skip_deterministic = 1;
+ afl->skip_deterministic = 0;
afl->sync_time = SYNC_TIME;
afl->cmplog_lvl = 2;
afl->min_length = 1;
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index 12d67fe7..b556b4b6 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -170,7 +170,6 @@ static void usage(u8 *argv0, int more_help) {
" -g minlength - set min length of generated fuzz input (default: 1)\n"
" -G maxlength - set max length of generated fuzz input (default: "
"%lu)\n"
- " -D - enable (a new) effective deterministic fuzzing\n"
" -L minutes - use MOpt(imize) mode and set the time limit for "
"entering the\n"
" pacemaker mode (minutes of no new finds). 0 = "
@@ -213,7 +212,8 @@ static void usage(u8 *argv0, int more_help) {
" -F path - sync to a foreign fuzzer queue directory (requires "
"-M, can\n"
" be specified up to %u times)\n"
- // " -d - skip deterministic fuzzing in -M mode\n"
+ " -z - skip the enhanced deterministic fuzzing\n"
+ " (note that the old -d and -D flags are ignored.)\n"
" -T text - text banner to show on the screen\n"
" -I command - execute this command/script when a new crash is "
"found\n"
@@ -955,20 +955,15 @@ int main(int argc, char **argv_orig, char **envp) {
break;
- case 'D': /* partial deterministic */
+ case 'd':
+ case 'D': /* old deterministic */
- afl->skip_deterministic = 0;
+ WARNF("Parameters -d and -D are deprecated, a new enhanced deterministic fuzzing is active by default, to disable it use -z");
break;
- case 'd': /* no deterministic */
+ case 'z': /* no deterministic */
- // this is the default and currently a lot of infrastructure enforces
- // it (e.g. clusterfuzz, fuzzbench) based on that this feature
- // originally was bad performance wise. We now have a better
- // implementation, hence if it is activated, we do not want to
- // deactivate it by such setups.
-
- // afl->skip_deterministic = 1;
+ afl->skip_deterministic = 1;
break;
case 'B': /* load bitmap */