From 6fa8abd58bb8beac0e73ccdba6dfa1414cb1112c Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Mon, 22 Sep 2003 21:10:21 +1000 Subject: - markus@cvs.openbsd.org 2003/09/19 11:29:40 [ssh-agent.c] provide a ssh-agent specific fatal() function; ok deraadt --- ssh-agent.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'ssh-agent.c') diff --git a/ssh-agent.c b/ssh-agent.c index e1e6cae9b..28a39a934 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -35,7 +35,7 @@ #include "includes.h" #include "openbsd-compat/sys-queue.h" -RCSID("$OpenBSD: ssh-agent.c,v 1.112 2003/09/18 08:49:45 markus Exp $"); +RCSID("$OpenBSD: ssh-agent.c,v 1.113 2003/09/19 11:29:40 markus Exp $"); #include #include @@ -949,7 +949,7 @@ after_select(fd_set *readset, fd_set *writeset) } static void -cleanup_socket(void *p) +cleanup_socket(void) { if (socket_name[0]) unlink(socket_name); @@ -960,17 +960,28 @@ cleanup_socket(void *p) static void cleanup_exit(int i) { - cleanup_socket(NULL); - exit(i); + cleanup_socket(); + _exit(i); } static void cleanup_handler(int sig) { - cleanup_socket(NULL); + cleanup_socket(); _exit(2); } +void +fatal(const char *fmt,...) +{ + va_list args; + va_start(args, fmt); + do_log(SYSLOG_LEVEL_FATAL, fmt, args); + va_end(args); + cleanup_socket(); + _exit(255); +} + static void check_parent_exists(int sig) { @@ -1209,7 +1220,6 @@ main(int ac, char **av) #endif skip: - fatal_add_cleanup(cleanup_socket, NULL); new_socket(AUTH_SOCKET, sock); if (ac > 0) { mysignal(SIGALRM, check_parent_exists); -- cgit v1.2.3