]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: check for POLLHUP wherever we check for POLLIN
authordjm@openbsd.org <djm@openbsd.org>
Thu, 18 Nov 2021 03:31:44 +0000 (03:31 +0000)
committerDamien Miller <djm@mindrot.org>
Thu, 18 Nov 2021 03:32:54 +0000 (14:32 +1100)
OpenBSD-Commit-ID: 6aa6f3ec6b17c3bd9bfec672a917f003a76d93e5

ssh-agent.c
ssh-keyscan.c
ssh-pkcs11-helper.c

index 48a47d45a91b12438c61f2f9013c51934b097d2a..521921faff74b1e61404c2fb7a051e4727060822 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-agent.c,v 1.278 2021/04/03 06:18:41 djm Exp $ */
+/* $OpenBSD: ssh-agent.c,v 1.279 2021/11/18 03:31:44 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1214,10 +1214,9 @@ after_poll(struct pollfd *pfd, size_t npfd, u_int maxfds)
                                activefds++;
                        break;
                case AUTH_CONNECTION:
-                       if ((pfd[i].revents & (POLLIN|POLLERR)) != 0 &&
-                           handle_conn_read(socknum) != 0) {
+                       if ((pfd[i].revents & (POLLIN|POLLHUP|POLLERR)) != 0 &&
+                           handle_conn_read(socknum) != 0)
                                goto close_sock;
-                       }
                        if ((pfd[i].revents & (POLLOUT|POLLHUP)) != 0 &&
                            handle_conn_write(socknum) != 0) {
  close_sock:
index b0c530f3199d05425ec2622f3edb0c5d1f380359..ccd212581a5f22530334bbe3b7e94d9047f03cc3 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-keyscan.c,v 1.142 2021/11/12 05:23:49 deraadt Exp $ */
+/* $OpenBSD: ssh-keyscan.c,v 1.143 2021/11/18 03:31:44 djm Exp $ */
 /*
  * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
  *
@@ -597,7 +597,7 @@ conloop(void)
        for (i = 0; i < maxfd; i++) {
                if (read_wait[i].revents & (POLLHUP|POLLERR|POLLNVAL))
                        confree(i);
-               else if (read_wait[i].revents & POLLIN)
+               else if (read_wait[i].revents & (POLLIN|POLLHUP))
                        conread(i);
        }
 
index 5ca8d03fbd1e7542eddcdc776dd20a2a966551a1..5c3eaaeb019770424c8526b50ca6e2db33334f5a 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-pkcs11-helper.c,v 1.25 2021/08/11 05:20:17 djm Exp $ */
+/* $OpenBSD: ssh-pkcs11-helper.c,v 1.26 2021/11/18 03:31:44 djm Exp $ */
 /*
  * Copyright (c) 2010 Markus Friedl.  All rights reserved.
  *
@@ -385,7 +385,7 @@ main(int argc, char **argv)
                }
 
                /* copy stdin to iqueue */
-               if ((pfd[0].revents & (POLLIN|POLLERR)) != 0) {
+               if ((pfd[0].revents & (POLLIN|POLLHUP|POLLERR)) != 0) {
                        len = read(in, buf, sizeof buf);
                        if (len == 0) {
                                debug("read eof");