From 6fa8abd58bb8beac0e73ccdba6dfa1414cb1112c Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Mon, 22 Sep 2003 21:10:21 +1000 Subject: [PATCH] - markus@cvs.openbsd.org 2003/09/19 11:29:40 [ssh-agent.c] provide a ssh-agent specific fatal() function; ok deraadt --- ChangeLog | 5 ++++- ssh-agent.c | 22 ++++++++++++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 05021615d..4707332af 100644 --- a/ChangeLog +++ b/ChangeLog @@ -52,6 +52,9 @@ - markus@cvs.openbsd.org 2003/09/19 09:03:00 [buffer.c] sign fix in buffer_dump; Jedi/Sector One; pr 3473 + - markus@cvs.openbsd.org 2003/09/19 11:29:40 + [ssh-agent.c] + provide a ssh-agent specific fatal() function; ok deraadt 20030919 - (djm) Bug #683: Remove reference to --with-ipv4-default from INSTALL; @@ -1188,4 +1191,4 @@ - Fix sshd BindAddress and -b options for systems using fake-getaddrinfo. Report from murple@murple.net, diagnosis from dtucker@zip.com.au -$Id: ChangeLog,v 1.3030 2003/09/22 11:08:21 dtucker Exp $ +$Id: ChangeLog,v 1.3031 2003/09/22 11:10:21 dtucker Exp $ 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);