summaryrefslogtreecommitdiff
path: root/ssh-agent.c
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2001-01-26 05:10:34 +0000
committerBen Lindstrom <mouring@eviladmin.org>2001-01-26 05:10:34 +0000
commit77808aba58d6527f4f26f8924ce836a9619e55ac (patch)
treed3cd302741d4070f9276ea8ebbf4eaddd7dfd537 /ssh-agent.c
parent27eebe6c1b9f608000188614d9a209f1281be2a2 (diff)
- deraadt@cvs.openbsd.org 2001/01/25 8:06:33
[ssh-agent.c] call _exit() in signal handler
Diffstat (limited to 'ssh-agent.c')
-rw-r--r--ssh-agent.c21
1 files changed, 15 insertions, 6 deletions
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 @@
1/* $OpenBSD: ssh-agent.c,v 1.47 2001/01/21 19:05:56 markus Exp $ */ 1/* $OpenBSD: ssh-agent.c,v 1.48 2001/01/25 08:06:33 deraadt Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -37,7 +37,7 @@
37 */ 37 */
38 38
39#include "includes.h" 39#include "includes.h"
40RCSID("$OpenBSD: ssh-agent.c,v 1.47 2001/01/21 19:05:56 markus Exp $"); 40RCSID("$OpenBSD: ssh-agent.c,v 1.48 2001/01/25 08:06:33 deraadt Exp $");
41 41
42#include <openssl/evp.h> 42#include <openssl/evp.h>
43#include <openssl/md5.h> 43#include <openssl/md5.h>
@@ -683,8 +683,10 @@ check_parent_exists(int sig)
683void 683void
684cleanup_socket(void) 684cleanup_socket(void)
685{ 685{
686 unlink(socket_name); 686 if (socket_name[0])
687 rmdir(socket_dir); 687 unlink(socket_name);
688 if (socket_dir[0])
689 rmdir(socket_dir);
688} 690}
689 691
690void 692void
@@ -695,6 +697,13 @@ cleanup_exit(int i)
695} 697}
696 698
697void 699void
700cleanup_handler(int sig)
701{
702 cleanup_socket();
703 _exit(2);
704}
705
706void
698usage() 707usage()
699{ 708{
700 fprintf(stderr, "ssh-agent version %s\n", SSH_VERSION); 709 fprintf(stderr, "ssh-agent version %s\n", SSH_VERSION);
@@ -866,8 +875,8 @@ main(int ac, char **av)
866 idtab_init(); 875 idtab_init();
867 signal(SIGINT, SIG_IGN); 876 signal(SIGINT, SIG_IGN);
868 signal(SIGPIPE, SIG_IGN); 877 signal(SIGPIPE, SIG_IGN);
869 signal(SIGHUP, cleanup_exit); 878 signal(SIGHUP, cleanup_handler);
870 signal(SIGTERM, cleanup_exit); 879 signal(SIGTERM, cleanup_handler);
871 while (1) { 880 while (1) {
872 prepare_select(&readsetp, &writesetp, &max_fd); 881 prepare_select(&readsetp, &writesetp, &max_fd);
873 if (select(max_fd + 1, readsetp, writesetp, NULL, NULL) < 0) { 882 if (select(max_fd + 1, readsetp, writesetp, NULL, NULL) < 0) {