diff options
author | Andrea Fioraldi <andreafioraldi@gmail.com> | 2020-01-31 18:49:22 +0100 |
---|---|---|
committer | Andrea Fioraldi <andreafioraldi@gmail.com> | 2020-01-31 18:49:22 +0100 |
commit | f5d46187023b23beff9797e8b461a9a041db3e9f (patch) | |
tree | 663721ab16157c5d6e5ebae5580d501a93b985e6 /qemu_mode/patches | |
parent | e5f081586d64a1ee4734a9d95dd2ab86d9e486c4 (diff) | |
download | afl++-f5d46187023b23beff9797e8b461a9a041db3e9f.tar.gz |
stop the fuzzer if AFL_QEMU_PERSISTENT_ADDR is wrong
Diffstat (limited to 'qemu_mode/patches')
-rw-r--r-- | qemu_mode/patches/afl-qemu-cpu-inl.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/qemu_mode/patches/afl-qemu-cpu-inl.h b/qemu_mode/patches/afl-qemu-cpu-inl.h index ec8ce735..73be87ce 100644 --- a/qemu_mode/patches/afl-qemu-cpu-inl.h +++ b/qemu_mode/patches/afl-qemu-cpu-inl.h @@ -272,6 +272,8 @@ static void afl_forkserver(CPUState *cpu) { if (write(FORKSRV_FD + 1, tmp, 4) != 4) return; afl_forksrv_pid = getpid(); + + int first_run = 1; /* All right, let's await orders... */ @@ -349,6 +351,8 @@ static void afl_forkserver(CPUState *cpu) { again. */ if (WIFSTOPPED(status)) child_stopped = 1; + else if(unlikely(first_run)) exit(12); // Persistent is wrong + first_run = 0; if (write(FORKSRV_FD + 1, &status, 4) != 4) exit(7); |