TT#142600 Improve signal handling

On signals that are expected to terminate the program gracefully, do not
call abort, otherwise we get core dumps for conditions, that while
unexpected are not worth a core dump, such timing out when called with
the timeout program.

Print the signal name instead of number

Change-Id: I740978882288801d71d4d3c4a1bbbde8b70e6a4f
(cherry picked from commit a137c6a853)
mr8.5.7
Guillem Jover 4 years ago
parent 70e19fc6f2
commit 09f0e80937

@ -111,8 +111,13 @@ static void cleanup(void) {
} }
static void sigcleanup(int sig) { static void sigcleanup(int sig) {
fprintf(stderr, "signal %s received, exiting\n", strsignal(sig));
cleanup();
}
static void sigabort(int sig) {
signal(SIGABRT, SIG_DFL); signal(SIGABRT, SIG_DFL);
fprintf(stderr, "signal %i received, aborting\n", sig); fprintf(stderr, "signal %s received, aborting\n", strsignal(sig));
cleanup(); cleanup();
abort(); abort();
} }
@ -130,8 +135,8 @@ int main(int argc, char *argv[])
init_rand(); init_rand();
atexit(cleanup); atexit(cleanup);
signal(SIGSEGV, sigcleanup); signal(SIGSEGV, sigabort);
signal(SIGABRT, sigcleanup); signal(SIGABRT, sigabort);
signal(SIGTERM, sigcleanup); signal(SIGTERM, sigcleanup);
signal(SIGINT, sigcleanup); signal(SIGINT, sigcleanup);
signal(SIGHUP, sigcleanup); signal(SIGHUP, sigcleanup);

Loading…
Cancel
Save