From 3abf3b587f622bef904291ed9c428ab3a64b65a7 Mon Sep 17 00:00:00 2001 From: djm Date: Thu, 18 Nov 2021 03:31:44 +0000 Subject: [PATCH] check for POLLHUP wherever we check for POLLIN --- usr.bin/ssh/ssh-agent.c | 7 +++---- usr.bin/ssh/ssh-keyscan.c | 4 ++-- usr.bin/ssh/ssh-pkcs11-helper.c | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/usr.bin/ssh/ssh-agent.c b/usr.bin/ssh/ssh-agent.c index 8c7030a0460..d0d74b59ef7 100644 --- a/usr.bin/ssh/ssh-agent.c +++ b/usr.bin/ssh/ssh-agent.c @@ -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 * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1200,10 +1200,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: diff --git a/usr.bin/ssh/ssh-keyscan.c b/usr.bin/ssh/ssh-keyscan.c index abde781f144..e3acfe018ed 100644 --- a/usr.bin/ssh/ssh-keyscan.c +++ b/usr.bin/ssh/ssh-keyscan.c @@ -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 . * @@ -579,7 +579,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); } diff --git a/usr.bin/ssh/ssh-pkcs11-helper.c b/usr.bin/ssh/ssh-pkcs11-helper.c index 5b4f84e8685..1a62757c19d 100644 --- a/usr.bin/ssh/ssh-pkcs11-helper.c +++ b/usr.bin/ssh/ssh-pkcs11-helper.c @@ -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. * @@ -372,7 +372,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"); -- 2.20.1