diff options
author | hexcoder- <heiko@hexco.de> | 2020-12-08 23:51:22 +0100 |
---|---|---|
committer | hexcoder- <heiko@hexco.de> | 2020-12-08 23:51:22 +0100 |
commit | a7125c68eb49d35de8aee6926cc0e9a9d839265f (patch) | |
tree | 288d5a14c224c225bcd81a2a38a09ed1852f7ecf | |
parent | 1dbb1c71938831eba21cc7f96222a63c54f2eb98 (diff) | |
download | afl++-a7125c68eb49d35de8aee6926cc0e9a9d839265f.tar.gz |
optimize a bit
-rw-r--r-- | src/afl-sharedmem.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/afl-sharedmem.c b/src/afl-sharedmem.c index 6eb63949..cef908e0 100644 --- a/src/afl-sharedmem.c +++ b/src/afl-sharedmem.c @@ -248,22 +248,26 @@ u8 *afl_shm_init(sharedmem_t *shm, size_t map_size, } - shm_str = alloc_printf("%d", shm->shm_id); + if (!non_instrumented_mode) { - /* If somebody is asking us to fuzz instrumented binaries in non-instrumented - mode, we don't want them to detect instrumentation, since we won't be - sending fork server commands. This should be replaced with better - auto-detection later on, perhaps? */ + shm_str = alloc_printf("%d", shm->shm_id); - if (!non_instrumented_mode) { setenv(SHM_ENV_VAR, shm_str, 1); } + /* If somebody is asking us to fuzz instrumented binaries in non-instrumented + mode, we don't want them to detect instrumentation, since we won't be + sending fork server commands. This should be replaced with better + auto-detection later on, perhaps? */ - ck_free(shm_str); + setenv(SHM_ENV_VAR, shm_str, 1); - if (shm->cmplog_mode) { + ck_free(shm_str); + + } + + if (shm->cmplog_mode && !non_instrumented_mode) { shm_str = alloc_printf("%d", shm->cmplog_shm_id); - if (!non_instrumented_mode) { setenv(CMPLOG_SHM_ENV_VAR, shm_str, 1); } + setenv(CMPLOG_SHM_ENV_VAR, shm_str, 1); ck_free(shm_str); @@ -274,6 +278,7 @@ u8 *afl_shm_init(sharedmem_t *shm, size_t map_size, if (shm->map == (void *)-1 || !shm->map) { shmctl(shm->shm_id, IPC_RMID, NULL); // do not leak shmem + if (shm->cmplog_mode) { shmctl(shm->cmplog_shm_id, IPC_RMID, NULL); // do not leak shmem @@ -291,11 +296,8 @@ u8 *afl_shm_init(sharedmem_t *shm, size_t map_size, if (shm->cmp_map == (void *)-1 || !shm->cmp_map) { shmctl(shm->shm_id, IPC_RMID, NULL); // do not leak shmem - if (shm->cmplog_mode) { - - shmctl(shm->cmplog_shm_id, IPC_RMID, NULL); // do not leak shmem - } + shmctl(shm->cmplog_shm_id, IPC_RMID, NULL); // do not leak shmem PFATAL("shmat() failed"); |