From 2e121633d4449d6b337554aa3f612cc1df61d870 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Mon, 5 Apr 2004 00:27:05 +0000 Subject: [PATCH] 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 --- visudo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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); } -- 2.50.1