misc: don't os_exit(1) causing core on SIGINT 61/28261/1
authorChristian E. Hopps <[email protected]>
Fri, 27 Sep 2019 17:52:50 +0000 (13:52 -0400)
committerAndrew Yourtchenko <[email protected]>
Wed, 12 Aug 2020 11:16:27 +0000 (11:16 +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 <[email protected]>
Change-Id: I2c15985a57e6ea898ff05c4001e4b30b41154eba
(cherry picked from commit 10a8bda37eed33ada1e7c6ece7bda1fe066ba541)

src/vlib/unix/main.c

index 9bfdab1..2297181 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);