now warns if killed by signal

./
This commit is contained in:
Todd C. Miller
1996-11-12 16:58:35 +00:00
parent 8336c86cb4
commit df20cedfc1

View File

@@ -180,7 +180,7 @@ int main(argc, argv)
} }
(void) fprintf(stderr, "%s: ", Argv[0]); (void) fprintf(stderr, "%s: ", Argv[0]);
perror(stmp); perror(stmp);
Exit(1); Exit(-1);
} }
/* install signal handler to clean up stmp */ /* install signal handler to clean up stmp */
@@ -190,7 +190,7 @@ int main(argc, argv)
if (sudoers_fd < 0 && errno != ENOENT) { if (sudoers_fd < 0 && errno != ENOENT) {
(void) fprintf(stderr, "%s: ", Argv[0]); (void) fprintf(stderr, "%s: ", Argv[0]);
perror(sudoers); perror(sudoers);
Exit(1); Exit(-1);
} }
/* /*
@@ -201,7 +201,7 @@ int main(argc, argv)
if (write(stmp_fd, buf, n) != n) { if (write(stmp_fd, buf, n) != n) {
(void) fprintf(stderr, "%s: Write failed: ", Argv[0]); (void) fprintf(stderr, "%s: Write failed: ", Argv[0]);
perror(""); perror("");
Exit(1); Exit(-1);
} }
(void) close(sudoers_fd); (void) close(sudoers_fd);
@@ -230,7 +230,7 @@ int main(argc, argv)
(void) fprintf(stderr, (void) fprintf(stderr,
"%s: Can't stat temporary file (%s), %s unchanged.\n", "%s: Can't stat temporary file (%s), %s unchanged.\n",
Argv[0], stmp, sudoers); Argv[0], stmp, sudoers);
Exit(1); Exit(-1);
} }
/* check for zero length file */ /* check for zero length file */
@@ -238,7 +238,7 @@ int main(argc, argv)
(void) fprintf(stderr, (void) fprintf(stderr,
"%s: Zero length temporary file (%s), %s unchanged.\n", "%s: Zero length temporary file (%s), %s unchanged.\n",
Argv[0], stmp, sudoers); Argv[0], stmp, sudoers);
Exit(1); Exit(-1);
} }
/* /*
@@ -254,7 +254,7 @@ int main(argc, argv)
(void) fprintf(stderr, (void) fprintf(stderr,
"%s: Can't re-open temporary file (%s), %s unchanged.\n", "%s: Can't re-open temporary file (%s), %s unchanged.\n",
Argv[0], stmp, sudoers); Argv[0], stmp, sudoers);
Exit(1); Exit(-1);
} }
/* clean slate for each parse */ /* clean slate for each parse */
@@ -265,12 +265,12 @@ int main(argc, argv)
(void) fprintf(stderr, (void) fprintf(stderr,
"%s: Failed to parse temporary file (%s), %s unchanged.\n", "%s: Failed to parse temporary file (%s), %s unchanged.\n",
Argv[0], stmp, sudoers); Argv[0], stmp, sudoers);
Exit(1); Exit(-1);
} }
} else { } else {
(void) fprintf(stderr, "%s: Editor (%s) failed, %s unchanged.\n", (void) fprintf(stderr, "%s: Editor (%s) failed, %s unchanged.\n",
Argv[0], Editor, sudoers); Argv[0], Editor, sudoers);
Exit(1); Exit(-1);
} }
/* /*
@@ -295,14 +295,14 @@ int main(argc, argv)
"%s: Unable to set (uid, gid) of %s to (%d, %d): ", "%s: Unable to set (uid, gid) of %s to (%d, %d): ",
Argv[0], stmp, SUDOERS_UID, SUDOERS_GID); Argv[0], stmp, SUDOERS_UID, SUDOERS_GID);
perror(""); perror("");
Exit(1); Exit(-1);
} }
if (chmod(stmp, SUDOERS_MODE)) { if (chmod(stmp, SUDOERS_MODE)) {
(void) fprintf(stderr, (void) fprintf(stderr,
"%s: Unable to change mode of %s to %o: ", "%s: Unable to change mode of %s to %o: ",
Argv[0], stmp, SUDOERS_MODE); Argv[0], stmp, SUDOERS_MODE);
perror(""); perror("");
Exit(1); Exit(-1);
} }
/* /*
@@ -326,7 +326,7 @@ int main(argc, argv)
"%s: Cannot alocate memory, %s unchanged: ", "%s: Cannot alocate memory, %s unchanged: ",
Argv[0], sudoers); Argv[0], sudoers);
perror(""); perror("");
Exit(1); Exit(-1);
} }
/* Build up command and execute it */ /* Build up command and execute it */
@@ -335,14 +335,14 @@ int main(argc, argv)
(void) fprintf(stderr, (void) fprintf(stderr,
"%s: Command failed: '%s', %s unchanged.\n", "%s: Command failed: '%s', %s unchanged.\n",
Argv[0], tmpbuf, sudoers); Argv[0], tmpbuf, sudoers);
Exit(1); Exit(-1);
} }
(void) free(tmpbuf); (void) free(tmpbuf);
} else { } else {
(void) fprintf(stderr, "%s: Error renaming %s, %s unchanged: ", (void) fprintf(stderr, "%s: Error renaming %s, %s unchanged: ",
Argv[0], stmp, sudoers); Argv[0], stmp, sudoers);
perror(""); perror("");
Exit(1); Exit(-1);
} }
return(0); return(0);
@@ -396,7 +396,7 @@ int netgr_matches(n, h, u)
static void usage() static void usage()
{ {
(void) fprintf(stderr, "usage: %s [-V]\n", Argv[0]); (void) fprintf(stderr, "usage: %s [-V]\n", Argv[0]);
Exit(1); Exit(-1);
} }
@@ -406,12 +406,19 @@ static void usage()
* *
* Unlinks the sudoers temp file (if it exists) and exits. * Unlinks the sudoers temp file (if it exists) and exits.
* Used in place of a normal exit() and as a signal handler. * Used in place of a normal exit() and as a signal handler.
* A positive parameter is considered to be a signal and is reported.
*/ */
static RETSIGTYPE Exit(sig) static RETSIGTYPE Exit(sig)
int sig; int sig;
{ {
(void) unlink(stmp); (void) unlink(stmp);
if (sig > 0)
(void) fprintf(stderr, "%s exiting, caught signal %d.\n", Argv[0], sig);
else
sig = -sig;
exit(sig); exit(sig);
} }