[ssh-agent.c]
     do not exit() from signal handlers; ok deraadt@
This commit is contained in:
Ben Lindstrom 2001-07-22 20:44:00 +00:00
parent 660076925e
commit 0250da057d
2 changed files with 20 additions and 17 deletions

View File

@ -14,6 +14,9 @@
- stevesk@cvs.openbsd.org 2001/07/19 00:41:44
[ssh.1]
escape chars are below now
- markus@cvs.openbsd.org 2001/07/20 14:46:11
[ssh-agent.c]
do not exit() from signal handlers; ok deraadt@
20010719
- (tim) [configure.in] put inet_aton back in AC_CHECK_FUNCS.
@ -6087,4 +6090,4 @@
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
$Id: ChangeLog,v 1.1419 2001/07/22 20:41:59 mouring Exp $
$Id: ChangeLog,v 1.1420 2001/07/22 20:44:00 mouring Exp $

View File

@ -1,4 +1,4 @@
/* $OpenBSD: ssh-agent.c,v 1.67 2001/07/18 21:40:40 stevesk Exp $ */
/* $OpenBSD: ssh-agent.c,v 1.68 2001/07/20 14:46:11 markus Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
@ -36,7 +36,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: ssh-agent.c,v 1.67 2001/07/18 21:40:40 stevesk Exp $");
RCSID("$OpenBSD: ssh-agent.c,v 1.68 2001/07/20 14:46:11 markus Exp $");
#include <openssl/evp.h>
#include <openssl/md5.h>
@ -778,20 +778,6 @@ after_select(fd_set *readset, fd_set *writeset)
}
}
static void
check_parent_exists(int sig)
{
int save_errno = errno;
if (parent_pid != -1 && kill(parent_pid, 0) < 0) {
/* printf("Parent has died - Authentication agent exiting.\n"); */
exit(1);
}
signal(SIGALRM, check_parent_exists);
alarm(10);
errno = save_errno;
}
static void
cleanup_socket(void)
{
@ -815,6 +801,20 @@ cleanup_handler(int sig)
_exit(2);
}
static void
check_parent_exists(int sig)
{
int save_errno = errno;
if (parent_pid != -1 && kill(parent_pid, 0) < 0) {
/* printf("Parent has died - Authentication agent exiting.\n"); */
cleanup_handler(sig); /* safe */
}
signal(SIGALRM, check_parent_exists);
alarm(10);
errno = save_errno;
}
static void
usage(void)
{