Commit 9270e88d authored by Wayne Davison's avatar Wayne Davison

Save first filename and linenum in case exit_cleanup() recurses.

parent 2907af47
......@@ -98,14 +98,18 @@ pid_t cleanup_child_pid = -1;
NORETURN void _exit_cleanup(int code, const char *file, int line)
{
static int cleanup_step = 0;
static int exit_code = 0;
static int exit_code = 0, exit_line = 0;
static const char *exit_file = NULL;
static int unmodified_code = 0;
SIGACTION(SIGUSR1, SIG_IGN);
SIGACTION(SIGUSR2, SIG_IGN);
if (exit_code) /* Preserve first error code when recursing. */
if (exit_code) { /* Preserve first exit info when recursing. */
code = exit_code;
file = exit_file;
line = exit_line;
}
/* If this is the exit at the end of the run, the server side
* should not attempt to output a message (see log_exit()). */
......@@ -118,6 +122,8 @@ NORETURN void _exit_cleanup(int code, const char *file, int line)
#include "case_N.h" /* case 0: cleanup_step++; */
exit_code = unmodified_code = code;
exit_file = file;
exit_line = line;
if (output_needs_newline) {
fputc('\n', stdout);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment