about summary refs log tree commit diff
path: root/src/afl-forkserver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/afl-forkserver.c')
-rw-r--r--src/afl-forkserver.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c
index 7ab8a4b5..3c0ad4a2 100644
--- a/src/afl-forkserver.c
+++ b/src/afl-forkserver.c
@@ -367,23 +367,28 @@ void afl_fsrv_start(afl_forkserver_t *fsrv, char **argv,
       if ((status & FS_OPT_MAPSIZE) == FS_OPT_MAPSIZE) {
 
         fsrv->map_size = FS_OPT_GET_MAPSIZE(status);
-        if (fsrv->map_size % 8)
+        if (fsrv->map_size % 8)  // should not happen
           fsrv->map_size = (((fsrv->map_size + 8) >> 3) << 3);
         if (!be_quiet) ACTF("Target map size: %u", fsrv->map_size);
+        if (fsrv->map_size > MAP_SIZE)
+          FATAL(
+              "Target's coverage map size of %u is larger than the one this "
+              "afl++ is compiled with (%u)\n",
+              fsrv->map_size, MAP_SIZE);
 
       }
 
-      if (fsrv->function_ptr == NULL || fsrv->function_opt == NULL) {
+      if ((status & FS_OPT_AUTODICT) == FS_OPT_AUTODICT) {
 
-        // this is not afl-fuzz - we deny and return
-        status = (0xffffffff ^ (FS_OPT_ENABLED | FS_OPT_AUTODICT));
-        if (write(fsrv->fsrv_ctl_fd, &status, 4) != 4)
-          FATAL("Writing to forkserver failed.");
-        return;
+        if (fsrv->function_ptr == NULL || fsrv->function_opt == NULL) {
 
-      }
+          // this is not afl-fuzz - we deny and return
+          status = (0xffffffff ^ (FS_OPT_ENABLED | FS_OPT_AUTODICT));
+          if (write(fsrv->fsrv_ctl_fd, &status, 4) != 4)
+            FATAL("Writing to forkserver failed.");
+          return;
 
-      if ((status & FS_OPT_AUTODICT) == FS_OPT_AUTODICT) {
+        }
 
         if (!be_quiet) ACTF("Using AUTODICT feature.");
         status = (FS_OPT_ENABLED | FS_OPT_AUTODICT);