diff options
author | djm@openbsd.org <djm@openbsd.org> | 2019-11-01 04:54:33 +0100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2019-11-01 04:56:38 +0100 |
commit | 4332b4fe49360679647a8705bc08f4e81323f6b4 (patch) | |
tree | f799d147e78be644cab1a9596cb4fedcd8d9dc37 /sftp.c | |
parent | conditionalise SK sign/verify on ENABLE_SK (diff) | |
download | openssh-4332b4fe49360679647a8705bc08f4e81323f6b4.tar.xz openssh-4332b4fe49360679647a8705bc08f4e81323f6b4.zip |
upstream: fix a race condition in the SIGCHILD handler that could turn
in to a kill(-1); bz3084, reported by Gao Rui, ok dtucker@
OpenBSD-Commit-ID: ac2742e04a69d4c34223505b6a32f6d686e18896
Diffstat (limited to '')
-rw-r--r-- | sftp.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.195 2019/10/02 00:42:30 djm Exp $ */ +/* $OpenBSD: sftp.c,v 1.196 2019/11/01 03:54:33 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> * @@ -220,9 +220,12 @@ static const struct CMD cmds[] = { static void killchild(int signo) { - if (sshpid > 1) { - kill(sshpid, SIGTERM); - waitpid(sshpid, NULL, 0); + pid_t pid; + + pid = sshpid; + if (pid > 1) { + kill(pid, SIGTERM); + waitpid(pid, NULL, 0); } _exit(1); |