misc: don't os_exit(1) causing core on SIGINT 58/22358/2
authorChristian E. Hopps <chopps@chopps.org>
Fri, 27 Sep 2019 17:52:50 +0000 (13:52 -0400)
committerDamjan Marion <dmarion@me.com>
Tue, 17 Dec 2019 18:41:21 +0000 (18:41 +0000)
It's not typical for a program to core when it receives a SIGINT, so
keep this from happening.

Type: fix
Signed-off-by: Christian E. Hopps <chopps@chopps.org>
Change-Id: I2c15985a57e6ea898ff05c4001e4b30b41154eba

src/vlib/unix/main.c

index 08e5937..7f1a8f3 100755 (executable)
@@ -180,7 +180,11 @@ unix_signal_handler (int signum, siginfo_t * si, ucontext_t * uc)
       /* have to remove SIGABRT to avoid recursive - os_exit calling abort() */
       unsetup_signal_handlers (SIGABRT);
 
-      os_exit (1);
+      /* os_exit(1) causes core generation, do not do this for SIGINT */
+      if (signum == SIGINT)
+       os_exit (0);
+      else
+       os_exit (1);
     }
   else
     clib_warning ("%s", syslog_msg);