=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/ssh-agent.c,v retrieving revision 1.47 retrieving revision 1.48 diff -u -r1.47 -r1.48 --- src/usr.bin/ssh/ssh-agent.c 2001/01/21 19:05:56 1.47 +++ src/usr.bin/ssh/ssh-agent.c 2001/01/25 08:06:33 1.48 @@ -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 @@ -679,8 +679,10 @@ 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 @@ -691,6 +693,13 @@ } void +cleanup_handler(int sig) +{ + cleanup_socket(); + _exit(2); +} + +void usage() { fprintf(stderr, "ssh-agent version %s\n", SSH_VERSION); @@ -851,8 +860,8 @@ 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) {