]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: check for POLLHUP as well as POLLIN in sshd listen loop;
authordjm@openbsd.org <djm@openbsd.org>
Thu, 18 Nov 2021 03:07:20 +0000 (03:07 +0000)
committerDamien Miller <djm@mindrot.org>
Thu, 18 Nov 2021 03:11:38 +0000 (14:11 +1100)
ok deraadt millert

OpenBSD-Commit-ID: a4f1244c5a9c2b08dac4f3b1dc22e9d1dc60c587

sshd.c

diff --git a/sshd.c b/sshd.c
index 9ada0c18bbe782fc449414c5aa1b084aea80eaff..432fc5be4ad1d25bf1e045b8c2d380e66c2f86eb 100644 (file)
--- a/sshd.c
+++ b/sshd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshd.c,v 1.580 2021/11/17 21:06:39 djm Exp $ */
+/* $OpenBSD: sshd.c,v 1.581 2021/11/18 03:07:20 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1218,7 +1218,7 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s)
 
                for (i = 0; i < options.max_startups; i++) {
                        if (startup_pipes[i] == -1 ||
-                           !(pfd[num_listen_socks+i].revents & POLLIN))
+                           !(pfd[num_listen_socks+i].revents & (POLLIN|POLLHUP)))
                                continue;
                        switch (read(startup_pipes[i], &c, sizeof(c))) {
                        case -1: