about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--instrumentation/afl-compiler-rt.o.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/instrumentation/afl-compiler-rt.o.c b/instrumentation/afl-compiler-rt.o.c
index f194510e..b735d8df 100644
--- a/instrumentation/afl-compiler-rt.o.c
+++ b/instrumentation/afl-compiler-rt.o.c
@@ -366,6 +366,18 @@ static void __afl_map_shm(void) {
 #else
     u32 shm_id = atoi(id_str);
 
+    if (__afl_map_size && __afl_map_size > MAP_SIZE) {
+
+      u8 *map_env = getenv("AFL_MAP_SIZE");
+      if (!map_env || atoi(map_env) < MAP_SIZE) {
+
+        send_forkserver_error(FS_ERROR_MAP_SIZE);
+        _exit(1);
+
+      }
+
+    }
+
     __afl_area_ptr = shmat(shm_id, (void *)__afl_map_addr, 0);
 
     /* Whooooops. */