diff options
author | deraadt@openbsd.org <deraadt@openbsd.org> | 2019-06-28 13:35:04 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2019-07-05 11:10:39 +1000 |
commit | 4d28fa78abce2890e136281950633fae2066cc29 (patch) | |
tree | 33226ec64ced661bb7e40005e30744b68fa59a80 /serverloop.c | |
parent | e8c974043c1648eab0ad67a7ba6a3e444fe79d2d (diff) |
upstream: When system calls indicate an error they return -1, not
some arbitrary value < 0. errno is only updated in this case. Change all
(most?) callers of syscalls to follow this better, and let's see if this
strictness helps us in the future.
OpenBSD-Commit-ID: 48081f00db7518e3b712a49dca06efc2a5428075
Diffstat (limited to 'serverloop.c')
-rw-r--r-- | serverloop.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/serverloop.c b/serverloop.c index d7b04b37c..ea468c954 100644 --- a/serverloop.c +++ b/serverloop.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: serverloop.c,v 1.215 2019/03/27 09:29:14 djm Exp $ */ | 1 | /* $OpenBSD: serverloop.c,v 1.216 2019/06/28 13:35:04 deraadt Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -123,7 +123,7 @@ static int notify_pipe[2]; | |||
123 | static void | 123 | static void |
124 | notify_setup(void) | 124 | notify_setup(void) |
125 | { | 125 | { |
126 | if (pipe(notify_pipe) < 0) { | 126 | if (pipe(notify_pipe) == -1) { |
127 | error("pipe(notify_pipe) failed %s", strerror(errno)); | 127 | error("pipe(notify_pipe) failed %s", strerror(errno)); |
128 | } else if ((fcntl(notify_pipe[0], F_SETFD, FD_CLOEXEC) == -1) || | 128 | } else if ((fcntl(notify_pipe[0], F_SETFD, FD_CLOEXEC) == -1) || |
129 | (fcntl(notify_pipe[1], F_SETFD, FD_CLOEXEC) == -1)) { | 129 | (fcntl(notify_pipe[1], F_SETFD, FD_CLOEXEC) == -1)) { |
@@ -328,7 +328,7 @@ process_input(struct ssh *ssh, fd_set *readset, int connection_in) | |||
328 | verbose("Connection closed by %.100s port %d", | 328 | verbose("Connection closed by %.100s port %d", |
329 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); | 329 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); |
330 | return -1; | 330 | return -1; |
331 | } else if (len < 0) { | 331 | } else if (len == -1) { |
332 | if (errno != EINTR && errno != EAGAIN && | 332 | if (errno != EINTR && errno != EAGAIN && |
333 | errno != EWOULDBLOCK) { | 333 | errno != EWOULDBLOCK) { |
334 | verbose("Read error from remote host " | 334 | verbose("Read error from remote host " |
@@ -384,7 +384,7 @@ collect_children(struct ssh *ssh) | |||
384 | if (child_terminated) { | 384 | if (child_terminated) { |
385 | debug("Received SIGCHLD."); | 385 | debug("Received SIGCHLD."); |
386 | while ((pid = waitpid(-1, &status, WNOHANG)) > 0 || | 386 | while ((pid = waitpid(-1, &status, WNOHANG)) > 0 || |
387 | (pid < 0 && errno == EINTR)) | 387 | (pid == -1 && errno == EINTR)) |
388 | if (pid > 0) | 388 | if (pid > 0) |
389 | session_close_by_pid(ssh, pid, status); | 389 | session_close_by_pid(ssh, pid, status); |
390 | child_terminated = 0; | 390 | child_terminated = 0; |