From 77808aba58d6527f4f26f8924ce836a9619e55ac Mon Sep 17 00:00:00 2001 From: Ben Lindstrom Date: Fri, 26 Jan 2001 05:10:34 +0000 Subject: - deraadt@cvs.openbsd.org 2001/01/25 8:06:33 [ssh-agent.c] call _exit() in signal handler --- ChangeLog | 4 ++++ ssh-agent.c | 21 +++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index b37684187..0913792e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,10 @@ 20010126 - (bal) SSH_PROGRAM vs _PATH_SSH_PROGRAM fix pointed out by Roumen Petrov + - (bal) OpenBSD Sync + - deraadt@cvs.openbsd.org 2001/01/25 8:06:33 + [ssh-agent.c] + call _exit() in signal handler 20010125 - (djm) Sync bsd-* support files: diff --git a/ssh-agent.c b/ssh-agent.c index d3713be9b..539f8ce7d 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.47 2001/01/21 19:05:56 markus Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.48 2001/01/25 08:06:33 deraadt Exp $ */ /* * Author: Tatu Ylonen @@ -37,7 +37,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: ssh-agent.c,v 1.47 2001/01/21 19:05:56 markus Exp $"); +RCSID("$OpenBSD: ssh-agent.c,v 1.48 2001/01/25 08:06:33 deraadt Exp $"); #include #include @@ -683,8 +683,10 @@ check_parent_exists(int sig) void cleanup_socket(void) { - unlink(socket_name); - rmdir(socket_dir); + if (socket_name[0]) + unlink(socket_name); + if (socket_dir[0]) + rmdir(socket_dir); } void @@ -694,6 +696,13 @@ cleanup_exit(int i) exit(i); } +void +cleanup_handler(int sig) +{ + cleanup_socket(); + _exit(2); +} + void usage() { @@ -866,8 +875,8 @@ main(int ac, char **av) idtab_init(); signal(SIGINT, SIG_IGN); signal(SIGPIPE, SIG_IGN); - signal(SIGHUP, cleanup_exit); - signal(SIGTERM, cleanup_exit); + signal(SIGHUP, cleanup_handler); + signal(SIGTERM, cleanup_handler); while (1) { prepare_select(&readsetp, &writesetp, &max_fd); if (select(max_fd + 1, readsetp, writesetp, NULL, NULL) < 0) { -- cgit v1.2.3