[openssh-commits] [openssh] 01/07: upstream: When poll(2) returns -1, for some error conditions
git+noreply at mindrot.org
git+noreply at mindrot.org
Tue Jan 25 12:18:57 AEDT 2022
This is an automated email from the git hooks/post-receive script.
djm pushed a commit to branch master
in repository openssh.
commit d069b020a02b6e3935080204ee44d233e8158ebb
Author: deraadt at openbsd.org <deraadt at openbsd.org>
Date: Fri Jan 21 00:53:40 2022 +0000
upstream: When poll(2) returns -1, for some error conditions
pfd[].revents is not cleared. There are subtle errors in various programs.
In this particular case, the program should error out. ok djm millert
OpenBSD-Commit-ID: 00f839b16861f7fb2adcf122e95e8a82fa6a375c
---
ssh-keyscan.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/ssh-keyscan.c b/ssh-keyscan.c
index 3480f8f0..d29a03b4 100644
--- a/ssh-keyscan.c
+++ b/ssh-keyscan.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-keyscan.c,v 1.144 2021/12/02 23:45:36 djm Exp $ */
+/* $OpenBSD: ssh-keyscan.c,v 1.145 2022/01/21 00:53:40 deraadt Exp $ */
/*
* Copyright 1995, 1996 by David Mazieres <dm at lcs.mit.edu>.
*
@@ -592,9 +592,11 @@ conloop(void)
else
timespecclear(&seltime);
- while (ppoll(read_wait, maxfd, &seltime, NULL) == -1 &&
- (errno == EAGAIN || errno == EINTR || errno == EWOULDBLOCK))
- ;
+ while (ppoll(read_wait, maxfd, &seltime, NULL) == -1) {
+ if (errno == EAGAIN || errno == EINTR || errno == EWOULDBLOCK)
+ continue;
+ error("poll error");
+ }
for (i = 0; i < maxfd; i++) {
if (read_wait[i].revents & (POLLHUP|POLLERR|POLLNVAL))
--
To stop receiving notification emails like this one, please contact
djm at mindrot.org.
More information about the openssh-commits
mailing list