about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2021-12-13 15:45:41 +0100
committervanhauser-thc <vh@thc.org>2021-12-13 15:45:52 +0100
commit57bc3c07018463ad6d069850be9f2bce5c450dd6 (patch)
tree33e18cbac06349963166cdf9e5f5d3fac8c8d2d1
parent630272bac5a01373ab45d90fcba879f0e6d42561 (diff)
downloadafl++-57bc3c07018463ad6d069850be9f2bce5c450dd6.tar.gz
fix qemu/unicorn oob
-rw-r--r--docs/Changelog.md2
-rw-r--r--src/afl-sharedmem.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/docs/Changelog.md b/docs/Changelog.md
index e9b62dc0..00502efe 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -34,6 +34,8 @@ sending a mail to <afl-users+subscribe@googlegroups.com>.
     - better banner
     - more effective cmplog mode
     - more often update the UI when in input2stage mode
+  - qemu_mode/unicorn_mode: fixed OOB write when using libcompcov,
+      thanks to kotee4ko for reporting!
   - frida_mode:
     - better performance, bug fixes
     - David Carlier added Android support :)
diff --git a/src/afl-sharedmem.c b/src/afl-sharedmem.c
index 7fb8f821..09941d61 100644
--- a/src/afl-sharedmem.c
+++ b/src/afl-sharedmem.c
@@ -242,6 +242,9 @@ u8 *afl_shm_init(sharedmem_t *shm, size_t map_size,
 #else
   u8 *shm_str;
 
+  // handle qemu/unicorn compcov map overwrite
+  if (map_size == MAP_SIZE) { map_size += 8; }
+
   shm->shm_id =
       shmget(IPC_PRIVATE, map_size, IPC_CREAT | IPC_EXCL | DEFAULT_PERMISSION);
   if (shm->shm_id < 0) {