diff options
author | deraadt@openbsd.org <deraadt@openbsd.org> | 2019-06-28 15:35:04 +0200 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2019-07-05 03:10:39 +0200 |
commit | 4d28fa78abce2890e136281950633fae2066cc29 (patch) | |
tree | 33226ec64ced661bb7e40005e30744b68fa59a80 /sftp-server.c | |
parent | upstream: asprintf returns -1, not an arbitrary value < 0. Also (diff) | |
download | openssh-4d28fa78abce2890e136281950633fae2066cc29.tar.xz openssh-4d28fa78abce2890e136281950633fae2066cc29.zip |
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 'sftp-server.c')
-rw-r--r-- | sftp-server.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/sftp-server.c b/sftp-server.c index ee6013e3f..e7dd33b2f 100644 --- a/sftp-server.c +++ b/sftp-server.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-server.c,v 1.115 2019/06/06 05:13:13 otto Exp $ */ +/* $OpenBSD: sftp-server.c,v 1.116 2019/06/28 13:35:04 deraadt Exp $ */ /* * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. * @@ -701,7 +701,7 @@ process_open(u_int32_t id) status = SSH2_FX_PERMISSION_DENIED; } else { fd = open(name, flags, mode); - if (fd < 0) { + if (fd == -1) { status = errno_to_portable(errno); } else { handle = handle_new(HANDLE_FILE, name, fd, flags, NULL); @@ -754,12 +754,12 @@ process_read(u_int32_t id) } fd = handle_to_fd(handle); if (fd >= 0) { - if (lseek(fd, off, SEEK_SET) < 0) { + if (lseek(fd, off, SEEK_SET) == -1) { error("process_read: seek failed"); status = errno_to_portable(errno); } else { ret = read(fd, buf, len); - if (ret < 0) { + if (ret == -1) { status = errno_to_portable(errno); } else if (ret == 0) { status = SSH2_FX_EOF; @@ -795,13 +795,13 @@ process_write(u_int32_t id) status = SSH2_FX_FAILURE; else { if (!(handle_to_flags(handle) & O_APPEND) && - lseek(fd, off, SEEK_SET) < 0) { + lseek(fd, off, SEEK_SET) == -1) { status = errno_to_portable(errno); error("process_write: seek failed"); } else { /* XXX ATOMICIO ? */ ret = write(fd, data, len); - if (ret < 0) { + if (ret == -1) { error("process_write: write failed"); status = errno_to_portable(errno); } else if ((size_t)ret == len) { @@ -831,7 +831,7 @@ process_do_stat(u_int32_t id, int do_lstat) debug3("request %u: %sstat", id, do_lstat ? "l" : ""); verbose("%sstat name \"%s\"", do_lstat ? "l" : "", name); r = do_lstat ? lstat(name, &st) : stat(name, &st); - if (r < 0) { + if (r == -1) { status = errno_to_portable(errno); } else { stat_to_attrib(&st, &a); @@ -869,7 +869,7 @@ process_fstat(u_int32_t id) fd = handle_to_fd(handle); if (fd >= 0) { r = fstat(fd, &st); - if (r < 0) { + if (r == -1) { status = errno_to_portable(errno); } else { stat_to_attrib(&st, &a); @@ -1079,7 +1079,7 @@ process_readdir(u_int32_t id) /* XXX OVERFLOW ? */ snprintf(pathname, sizeof pathname, "%s%s%s", path, strcmp(path, "/") ? "/" : "", dp->d_name); - if (lstat(pathname, &st) < 0) + if (lstat(pathname, &st) == -1) continue; stat_to_attrib(&st, &(stats[count].attrib)); stats[count].name = xstrdup(dp->d_name); @@ -1726,7 +1726,7 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw) if (olen > 0) FD_SET(out, wset); - if (select(max+1, rset, wset, NULL, NULL) < 0) { + if (select(max+1, rset, wset, NULL, NULL) == -1) { if (errno == EINTR) continue; error("select: %s", strerror(errno)); @@ -1739,7 +1739,7 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw) if (len == 0) { debug("read eof"); sftp_server_cleanup_exit(0); - } else if (len < 0) { + } else if (len == -1) { error("read: %s", strerror(errno)); sftp_server_cleanup_exit(1); } else if ((r = sshbuf_put(iqueue, buf, len)) != 0) { @@ -1750,7 +1750,7 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw) /* send oqueue to stdout */ if (FD_ISSET(out, wset)) { len = write(out, sshbuf_ptr(oqueue), olen); - if (len < 0) { + if (len == -1) { error("write: %s", strerror(errno)); sftp_server_cleanup_exit(1); } else if ((r = sshbuf_consume(oqueue, len)) != 0) { |