From: Todd C. Miller Date: Mon, 5 Apr 2004 00:27:05 +0000 (+0000) Subject: In Exit() when used as a signal handler, emsg is a pointer so X-Git-Tag: SUDO_1_6_8~152 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2e121633d4449d6b337554aa3f612cc1df61d870;p=sudo In Exit() when used as a signal handler, emsg is a pointer so sizeof() is wrong so make it a #define instead. Also avoid using a negative exit value. Found by Aaron Campbell --- diff --git a/visudo.c b/visudo.c index 75943cc34..a12a18cca 100644 --- a/visudo.c +++ b/visudo.c @@ -672,14 +672,14 @@ static RETSIGTYPE Exit(sig) int sig; { - char *emsg = " exiting due to signal.\n"; +#define emsg " exiting due to signal.\n" (void) unlink(stmp); if (sig > 0) { write(STDERR_FILENO, getprogname(), strlen(getprogname())); write(STDERR_FILENO, emsg, sizeof(emsg) - 1); - _exit(-sig); + _exit(sig); } exit(-sig); }