about summary refs log tree commit diff
diff options
context:
space:
mode:
l---------Changelog.md1
-rw-r--r--docs/Changelog.md1
-rw-r--r--gcc_plugin/Makefile2
-rw-r--r--include/envs.h97
-rw-r--r--src/afl-fuzz.c3
5 files changed, 103 insertions, 1 deletions
diff --git a/Changelog.md b/Changelog.md
new file mode 120000
index 00000000..c50d6ab3
--- /dev/null
+++ b/Changelog.md
@@ -0,0 +1 @@
+docs/Changelog.md
\ No newline at end of file
diff --git a/docs/Changelog.md b/docs/Changelog.md
index 898591f4..b96884d7 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -23,6 +23,7 @@ sending a mail to <afl-users+subscribe@googlegroups.com>.
      - changed execs_per_sec in fuzzer_stats from "current" execs per second
        (which is pointless) to total execs per second
      - bugfix for dictionary insert stage count (fix via Google repo PR)
+     - added warning if -M is used together with custom mutators with _ONLY option
   - llvm_mode InsTrim: no pointless instrumentation of 1 block functions
   - afl-clang-fast:
      - show in the help output for which llvm version it was compiled for
diff --git a/gcc_plugin/Makefile b/gcc_plugin/Makefile
index 4dcec72f..1ee18b82 100644
--- a/gcc_plugin/Makefile
+++ b/gcc_plugin/Makefile
@@ -132,4 +132,4 @@ vpath  % ..
 
 clean:
 	rm -f *.o *.so *~ a.out core core.[1-9][0-9]* test-instr .test-instr0 .test-instr1 .test2
-	rm -f $(PROGS) ../afl-g++-fast ../afl-g*-fast.8
+	rm -f $(PROGS) afl-common.o ../afl-g++-fast ../afl-g*-fast.8
diff --git a/include/envs.h b/include/envs.h
new file mode 100644
index 00000000..f9344900
--- /dev/null
+++ b/include/envs.h
@@ -0,0 +1,97 @@
+const char *afl_environment_variables[] = {
+
+    "AFL_ALIGNED_ALLOC",
+    "AFL_ALLOW_TMP",
+    "AFL_ANALYZE_HEX",
+    "AFL_AS",
+    "AFL_AS_FORCE_INSTRUMENT",
+    "AFL_BENCH_JUST_ONE",
+    "AFL_BENCH_UNTIL_CRASH",
+    "AFL_CAL_FAST",
+    "AFL_CC",
+    "AFL_CMIN_ALLOW_ANY",
+    "AFL_CMIN_CRASHES_ONLY",
+    "AFL_CODE_END",
+    "AFL_CODE_START",
+    "AFL_COMPCOV_BINNAME",
+    "AFL_COMPCOV_LEVEL",
+    "AFL_CUSTOM_MUTATOR_LIBRARY",
+    "AFL_CUSTOM_MUTATOR_ONLY",
+    "AFL_CXX",
+    "AFL_DEBUG",
+    "AFL_DEBUG_CHILD_OUTPUT",
+    "AFL_DEFER_FORKSRV",
+    "AFL_DISABLE_TRIM",
+    "AFL_DONT_OPTIMIZE",
+    "AFL_DUMB_FORKSRV",
+    "___AFL_EINS_ZWEI_POLIZEI___",
+    "AFL_ENTRYPOINT",
+    "AFL_EXIT_WHEN_DONE",
+    "AFL_FAST_CAL",
+    "AFL_FORCE_UI",
+    "AFL_GCC_WHITELIST",
+    "AFL_GCJ",
+    "AFL_HANG_TMOUT",
+    "AFL_HARDEN",
+    "AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES",
+    "AFL_IMPORT_FIRST",
+    "AFL_INST_LIBS",
+    "AFL_INST_RATIO",
+    "AFL_KEEP_TRACES",
+    "AFL_KEEP_ASSEMBLY",
+    "AFL_LD_HARD_FAIL",
+    "AFL_LD_LIMIT_MB",
+    "AFL_LD_NO_CALLOC_OVER",
+    "AFL_LD_PRELOAD",
+    "AFL_LD_VERBOSE",
+    "AFL_LLVM_CMPLOG",
+    "AFL_LLVM_INSTRIM",
+    "AFL_LLVM_INSTRIM_LOOPHEAD",
+    "AFL_LLVM_LAF_SPLIT_COMPARES",
+    "AFL_LLVM_LAF_SPLIT_COMPARES_BITW",
+    "AFL_LLVM_LAF_SPLIT_FLOATS",
+    "AFL_LLVM_LAF_SPLIT_SWITCHES",
+    "AFL_LLVM_LAF_TRANSFORM_COMPARES",
+    "AFL_LLVM_NOT_ZERO",
+    "AFL_LLVM_WHITELIST",
+    "AFL_NO_AFFINITY",
+    "AFL_NO_ARITH",
+    "AFL_NO_BUILTIN",
+    "AFL_NO_CPU_RED",
+    "AFL_NO_FORKSRV",
+    "AFL_NO_UI",
+    "AFL_PATH",
+    "AFL_PERFORMANCE_FILE",
+    "AFL_PERSISTENT",
+    "AFL_POST_LIBRARY",
+    "AFL_PRELOAD",
+    "AFL_PYTHON_MODULE",
+    "AFL_PYTHON_ONLY",
+    "AFL_QEMU_COMPCOV",
+    "AFL_QEMU_COMPCOV_DEBUG",
+    "AFL_QEMU_DEBUG_MAPS",
+    "AFL_QEMU_DISABLE_CACHE",
+    "AFL_QEMU_PERSISTENT_ADDR",
+    "AFL_QEMU_PERSISTENT_CNT",
+    "AFL_QEMU_PERSISTENT_GPR",
+    "AFL_QEMU_PERSISTENT_HOOK",
+    "AFL_QEMU_PERSISTENT_RET",
+    "AFL_QEMU_PERSISTENT_RETADDR_OFFSET",
+    "AFL_QUIET",
+    "AFL_RANDOM_ALLOC_CANARY",
+    "AFL_REAL_PATH",
+    "AFL_SHUFFLE_QUEUE",
+    "AFL_SKIP_BIN_CHECK",
+    "AFL_SKIP_CPUFREQ",
+    "AFL_SKIP_CRASHES",
+    "AFL_TMIN_EXACT",
+    "AFL_TMPDIR",
+    "AFL_TOKEN_FILE",
+    "AFL_TRACE_PC",
+    "AFL_USE_ASAN",
+    "AFL_USE_MSAN",
+    "AFL_USE_TRACE_PC",
+    "AFL_USE_UBSAN",
+    "AFL_WINE_PATH",
+    NULL};
+
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index e995a7a0..5e5bc171 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -609,6 +609,9 @@ int main(int argc, char** argv, char** envp) {
   OKF("afl-tmin fork server patch from github.com/nccgroup/TriforceAFL");
   OKF("MOpt Mutator from github.com/puppet-meteor/MOpt-AFL");
 
+  if (sync_id && force_deterministic && (getenv("AFL_CUSTOM_MUTATOR_ONLY") || getenv("AFL_PYTHON_ONLY")))
+    WARNF("Using -M master with the AFL_..._ONLY mutator options will result in no deterministic mutations being done!");
+
   check_environment_vars(envp);
 
   if (fixed_seed) OKF("Running with fixed seed: %u", (u32)init_seed);