summaryrefslogtreecommitdiff
path: root/ssh-agent.c
diff options
context:
space:
mode:
Diffstat (limited to 'ssh-agent.c')
-rw-r--r--ssh-agent.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/ssh-agent.c b/ssh-agent.c
index 693d763e2..f7a021364 100644
--- a/ssh-agent.c
+++ b/ssh-agent.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-agent.c,v 1.186 2014/06/24 01:13:21 djm Exp $ */ 1/* $OpenBSD: ssh-agent.c,v 1.187 2014/07/03 03:11:03 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -126,6 +126,9 @@ int max_fd = 0;
126pid_t parent_pid = -1; 126pid_t parent_pid = -1;
127time_t parent_alive_interval = 0; 127time_t parent_alive_interval = 0;
128 128
129/* pid of process for which cleanup_socket is applicable */
130pid_t cleanup_pid = 0;
131
129/* pathname and directory for AUTH_SOCKET */ 132/* pathname and directory for AUTH_SOCKET */
130char socket_name[MAXPATHLEN]; 133char socket_name[MAXPATHLEN];
131char socket_dir[MAXPATHLEN]; 134char socket_dir[MAXPATHLEN];
@@ -976,6 +979,9 @@ after_select(fd_set *readset, fd_set *writeset)
976static void 979static void
977cleanup_socket(void) 980cleanup_socket(void)
978{ 981{
982 if (cleanup_pid != 0 && getpid() != cleanup_pid)
983 return;
984 debug("%s: cleanup", __func__);
979 if (socket_name[0]) 985 if (socket_name[0])
980 unlink(socket_name); 986 unlink(socket_name);
981 if (socket_dir[0]) 987 if (socket_dir[0])
@@ -1244,6 +1250,8 @@ main(int ac, char **av)
1244 1250
1245skip: 1251skip:
1246 1252
1253 cleanup_pid = getpid();
1254
1247#ifdef ENABLE_PKCS11 1255#ifdef ENABLE_PKCS11
1248 pkcs11_init(0); 1256 pkcs11_init(0);
1249#endif 1257#endif