[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