diff --git a/ssh-agent.c b/ssh-agent.c index 48a47d45a..521921faf 100644 --- a/ssh-agent.c +++ b/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 @@ -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: diff --git a/ssh-keyscan.c b/ssh-keyscan.c index b0c530f31..ccd212581 100644 --- a/ssh-keyscan.c +++ b/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 . * @@ -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); } diff --git a/ssh-pkcs11-helper.c b/ssh-pkcs11-helper.c index 5ca8d03fb..5c3eaaeb0 100644 --- a/ssh-pkcs11-helper.c +++ b/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. * @@ -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");