From: Todd C. Miller Date: Mon, 6 Jun 1994 20:57:59 +0000 (+0000) Subject: added posic signals X-Git-Tag: SUDO_1_3_1~170 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b1d57caa630a8acaefe019379e6b2dd22f57c351;p=sudo added posic signals --- diff --git a/visudo.c b/visudo.c index aff259dc0..4ac72a835 100644 --- a/visudo.c +++ b/visudo.c @@ -93,6 +93,9 @@ main(argc, argv) #ifdef ENV_EDITOR char * Editor; #endif /* ENV_EDITOR */ +#ifdef POSIX_SIGNALS + struct sigaction action; +#endif POSIX_SIGNALS Argv = argv; @@ -112,6 +115,22 @@ main(argc, argv) /* * handle the signals */ +#ifdef POSIX_SIGNALS + (void) bzero((char *)(&action), sizeof(action)); + action.sa_handler = Exit; + action.sa_flags = SA_RESETHAND; + (void) sigaction(SIGILL, &action, NULL); + (void) sigaction(SIGTRAP, &action, NULL); + (void) sigaction(SIGBUS, &action, NULL); + (void) sigaction(SIGSEGV, &action, NULL); + (void) sigaction(SIGTERM, &action, NULL); + + action.sa_handler = SIG_IGN; + action.sa_flags = 0; + (void) sigaction(SIGHUP, &action, NULL); + (void) sigaction(SIGINT, &action, NULL); + (void) sigaction(SIGQUIT, &action, NULL); +#else (void) signal(SIGILL, Exit); (void) signal(SIGTRAP, Exit); (void) signal(SIGBUS, Exit); @@ -121,6 +140,7 @@ main(argc, argv) (void) signal(SIGHUP, SIG_IGN); (void) signal(SIGINT, SIG_IGN); (void) signal(SIGQUIT, SIG_IGN); +#endif POSIX_SIGNALS setbuf(stderr, NULL);