about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/afl-showmap.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/afl-showmap.c b/src/afl-showmap.c
index b1b548e5..0de798fe 100644
--- a/src/afl-showmap.c
+++ b/src/afl-showmap.c
@@ -515,11 +515,10 @@ static void showmap_run_target(afl_forkserver_t *fsrv, char **argv) {
     it.it_value.tv_sec = (fsrv->exec_tmout / 1000);
     it.it_value.tv_usec = (fsrv->exec_tmout % 1000) * 1000;
 
-  }
-
-  signal(SIGALRM, kill_child);
+    signal(SIGALRM, kill_child);
 
-  setitimer(ITIMER_REAL, &it, NULL);
+    setitimer(ITIMER_REAL, &it, NULL);
+  }
 
   if (waitpid(fsrv->child_pid, &status, 0) <= 0) { FATAL("waitpid() failed"); }
 
@@ -1016,6 +1015,11 @@ int main(int argc, char **argv_orig, char **envp) {
 
           }
 
+        } else {
+          // The forkserver code does not have a way to completely
+          // disable the timeout, so we'll use a very, very long
+          // timeout instead.
+          fsrv->exec_tmout = 120 * 1000;
         }
 
         break;