aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-06-04 16:31:53 +0200
committervan Hauser <vh@thc.org>2020-06-04 16:31:53 +0200
commita9348e0acc1ea7de31858e2832f0a4abccf20599 (patch)
treeb8ba26434d1f9edeafb1d588bed3a3ececbb2a0b /src
parent9a1e22afab096f64abf91daecbe78a9aac638f97 (diff)
downloadafl++-a9348e0acc1ea7de31858e2832f0a4abccf20599.tar.gz
fix cmplog for shmem persistent mode
Diffstat (limited to 'src')
-rw-r--r--src/afl-forkserver.c6
-rw-r--r--src/afl-fuzz-run.c2
-rw-r--r--src/afl-fuzz.c3
3 files changed, 8 insertions, 3 deletions
diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c
index c0b6b136..7f89f0dc 100644
--- a/src/afl-forkserver.c
+++ b/src/afl-forkserver.c
@@ -101,6 +101,7 @@ void afl_fsrv_init_dup(afl_forkserver_t *fsrv_to, afl_forkserver_t *from) {
fsrv_to->exec_tmout = from->exec_tmout;
fsrv_to->mem_limit = from->mem_limit;
fsrv_to->map_size = from->map_size;
+ fsrv_to->support_shmem_fuzz = from->support_shmem_fuzz;
#ifndef HAVE_ARC4RANDOM
fsrv_to->dev_urandom_fd = from->dev_urandom_fd;
@@ -435,6 +436,7 @@ void afl_fsrv_start(afl_forkserver_t *fsrv, char **argv,
falling through. */
*(u32 *)fsrv->trace_bits = EXEC_FAIL_SIG;
+ fprintf(stderr, "Error: execv to target failed\n");
exit(0);
}
@@ -508,7 +510,7 @@ void afl_fsrv_start(afl_forkserver_t *fsrv, char **argv,
if (fsrv->support_shmem_fuzz) {
- fsrv->use_shdmen_fuzz = 1;
+ fsrv->use_shmem_fuzz = 1;
if (!be_quiet) { ACTF("Using SHARED MEMORY FUZZING feature."); }
if ((status & FS_OPT_AUTODICT) == 0) {
@@ -567,7 +569,7 @@ void afl_fsrv_start(afl_forkserver_t *fsrv, char **argv,
if (fsrv->function_ptr == NULL || fsrv->function_opt == NULL) {
// this is not afl-fuzz - we deny and return
- if (fsrv->use_shdmen_fuzz)
+ if (fsrv->use_shmem_fuzz)
status = (FS_OPT_ENABLED | FS_OPT_AUTODICT | FS_OPT_SHDMEM_FUZZ);
else
status = (FS_OPT_ENABLED | FS_OPT_AUTODICT);
diff --git a/src/afl-fuzz-run.c b/src/afl-fuzz-run.c
index 91a64fba..a85e00fe 100644
--- a/src/afl-fuzz-run.c
+++ b/src/afl-fuzz-run.c
@@ -232,7 +232,7 @@ u8 calibrate_case(afl_state_t *afl, struct queue_entry *q, u8 *use_mem,
afl_fsrv_start(&afl->fsrv, afl->argv, &afl->stop_soon,
afl->afl_env.afl_debug_child_output);
- if (afl->fsrv.support_shmem_fuzz && !afl->fsrv.use_shdmen_fuzz) {
+ if (afl->fsrv.support_shmem_fuzz && !afl->fsrv.use_shmem_fuzz) {
afl_shm_deinit(afl->shm_fuzz);
ck_free(afl->shm_fuzz);
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index 44b91877..d5fed9f2 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -792,6 +792,8 @@ int main(int argc, char **argv_orig, char **envp) {
}
+ if (!mem_limit_given && afl->shm.cmplog_mode) afl->fsrv.mem_limit += 260;
+
OKF("afl++ is maintained by Marc \"van Hauser\" Heuse, Heiko \"hexcoder\" "
"Eißfeldt, Andrea Fioraldi and Dominik Maier");
OKF("afl++ is open source, get it at "
@@ -1228,6 +1230,7 @@ int main(int argc, char **argv_orig, char **envp) {
afl->cmplog_fsrv.init_child_func = cmplog_exec_child;
afl_fsrv_start(&afl->cmplog_fsrv, afl->argv, &afl->stop_soon,
afl->afl_env.afl_debug_child_output);
+ OKF("Cmplog forkserver successfully started");
}