mirror of git://anongit.mindrot.org/openssh.git
- djm@cvs.openbsd.org 2014/07/03 03:11:03
[ssh-agent.c] Only cleanup agent socket in the main agent process and not in any subprocesses it may have started (e.g. forked askpass). Fixes agent sockets being zapped when askpass processes fatal(); bz#2236 patch from Dmitry V. Levin
This commit is contained in:
parent
61e28e55c3
commit
b1e967c8d7
|
@ -8,6 +8,12 @@
|
||||||
[sshkey.c]
|
[sshkey.c]
|
||||||
make Ed25519 keys' title fit properly in the randomart border; bz#2247
|
make Ed25519 keys' title fit properly in the randomart border; bz#2247
|
||||||
based on patch from Christian Hesse
|
based on patch from Christian Hesse
|
||||||
|
- djm@cvs.openbsd.org 2014/07/03 03:11:03
|
||||||
|
[ssh-agent.c]
|
||||||
|
Only cleanup agent socket in the main agent process and not in any
|
||||||
|
subprocesses it may have started (e.g. forked askpass). Fixes
|
||||||
|
agent sockets being zapped when askpass processes fatal();
|
||||||
|
bz#2236 patch from Dmitry V. Levin
|
||||||
|
|
||||||
20140702
|
20140702
|
||||||
- OpenBSD CVS Sync
|
- OpenBSD CVS Sync
|
||||||
|
|
10
ssh-agent.c
10
ssh-agent.c
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: ssh-agent.c,v 1.186 2014/06/24 01:13:21 djm Exp $ */
|
/* $OpenBSD: ssh-agent.c,v 1.187 2014/07/03 03:11:03 djm Exp $ */
|
||||||
/*
|
/*
|
||||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||||
|
@ -126,6 +126,9 @@ int max_fd = 0;
|
||||||
pid_t parent_pid = -1;
|
pid_t parent_pid = -1;
|
||||||
time_t parent_alive_interval = 0;
|
time_t parent_alive_interval = 0;
|
||||||
|
|
||||||
|
/* pid of process for which cleanup_socket is applicable */
|
||||||
|
pid_t cleanup_pid = 0;
|
||||||
|
|
||||||
/* pathname and directory for AUTH_SOCKET */
|
/* pathname and directory for AUTH_SOCKET */
|
||||||
char socket_name[MAXPATHLEN];
|
char socket_name[MAXPATHLEN];
|
||||||
char socket_dir[MAXPATHLEN];
|
char socket_dir[MAXPATHLEN];
|
||||||
|
@ -976,6 +979,9 @@ after_select(fd_set *readset, fd_set *writeset)
|
||||||
static void
|
static void
|
||||||
cleanup_socket(void)
|
cleanup_socket(void)
|
||||||
{
|
{
|
||||||
|
if (cleanup_pid != 0 && getpid() != cleanup_pid)
|
||||||
|
return;
|
||||||
|
debug("%s: cleanup", __func__);
|
||||||
if (socket_name[0])
|
if (socket_name[0])
|
||||||
unlink(socket_name);
|
unlink(socket_name);
|
||||||
if (socket_dir[0])
|
if (socket_dir[0])
|
||||||
|
@ -1244,6 +1250,8 @@ main(int ac, char **av)
|
||||||
|
|
||||||
skip:
|
skip:
|
||||||
|
|
||||||
|
cleanup_pid = getpid();
|
||||||
|
|
||||||
#ifdef ENABLE_PKCS11
|
#ifdef ENABLE_PKCS11
|
||||||
pkcs11_init(0);
|
pkcs11_init(0);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue