summaryrefslogtreecommitdiff
path: root/src/usr.bin/nc/netcat.c
diff options
context:
space:
mode:
authorderaadt <>2019-06-28 13:35:02 +0000
committerderaadt <>2019-06-28 13:35:02 +0000
commit6585927e66d9ab172754d95c4296dd4309a40512 (patch)
treebc969c069c7b769f2601db17f08bec99274202a5 /src/usr.bin/nc/netcat.c
parent74ff76124ba7a371400a9f60d5e33192a3732f03 (diff)
downloadopenbsd-6585927e66d9ab172754d95c4296dd4309a40512.tar.gz
openbsd-6585927e66d9ab172754d95c4296dd4309a40512.tar.bz2
openbsd-6585927e66d9ab172754d95c4296dd4309a40512.zip
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.
Diffstat (limited to 'src/usr.bin/nc/netcat.c')
-rw-r--r--src/usr.bin/nc/netcat.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/usr.bin/nc/netcat.c b/src/usr.bin/nc/netcat.c
index 26288560b0..c2e769c4c0 100644
--- a/src/usr.bin/nc/netcat.c
+++ b/src/usr.bin/nc/netcat.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: netcat.c,v 1.204 2019/06/27 18:03:37 deraadt Exp $ */ 1/* $OpenBSD: netcat.c,v 1.205 2019/06/28 13:35:02 deraadt Exp $ */
2/* 2/*
3 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> 3 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org>
4 * Copyright (c) 2015 Bob Beck. All rights reserved. 4 * Copyright (c) 2015 Bob Beck. All rights reserved.
@@ -568,7 +568,7 @@ main(int argc, char *argv[])
568 close(s); 568 close(s);
569 s = local_listen(host, uport, hints); 569 s = local_listen(host, uport, hints);
570 } 570 }
571 if (s < 0) 571 if (s == -1)
572 err(1, NULL); 572 err(1, NULL);
573 if (uflag && kflag) { 573 if (uflag && kflag) {
574 /* 574 /*
@@ -590,11 +590,11 @@ main(int argc, char *argv[])
590 len = sizeof(z); 590 len = sizeof(z);
591 rv = recvfrom(s, buf, sizeof(buf), MSG_PEEK, 591 rv = recvfrom(s, buf, sizeof(buf), MSG_PEEK,
592 (struct sockaddr *)&z, &len); 592 (struct sockaddr *)&z, &len);
593 if (rv < 0) 593 if (rv == -1)
594 err(1, "recvfrom"); 594 err(1, "recvfrom");
595 595
596 rv = connect(s, (struct sockaddr *)&z, len); 596 rv = connect(s, (struct sockaddr *)&z, len);
597 if (rv < 0) 597 if (rv == -1)
598 err(1, "connect"); 598 err(1, "connect");
599 599
600 if (vflag) 600 if (vflag)
@@ -628,7 +628,7 @@ main(int argc, char *argv[])
628 tls_free(tls_cctx); 628 tls_free(tls_cctx);
629 } 629 }
630 if (family == AF_UNIX && uflag) { 630 if (family == AF_UNIX && uflag) {
631 if (connect(s, NULL, 0) < 0) 631 if (connect(s, NULL, 0) == -1)
632 err(1, "connect"); 632 err(1, "connect");
633 } 633 }
634 634
@@ -739,7 +739,7 @@ unix_bind(char *path, int flags)
739 739
740 /* Create unix domain socket. */ 740 /* Create unix domain socket. */
741 if ((s = socket(AF_UNIX, flags | (uflag ? SOCK_DGRAM : SOCK_STREAM), 741 if ((s = socket(AF_UNIX, flags | (uflag ? SOCK_DGRAM : SOCK_STREAM),
742 0)) < 0) 742 0)) == -1)
743 return -1; 743 return -1;
744 744
745 memset(&s_un, 0, sizeof(struct sockaddr_un)); 745 memset(&s_un, 0, sizeof(struct sockaddr_un));
@@ -752,7 +752,7 @@ unix_bind(char *path, int flags)
752 return -1; 752 return -1;
753 } 753 }
754 754
755 if (bind(s, (struct sockaddr *)&s_un, sizeof(s_un)) < 0) { 755 if (bind(s, (struct sockaddr *)&s_un, sizeof(s_un)) == -1) {
756 save_errno = errno; 756 save_errno = errno;
757 close(s); 757 close(s);
758 errno = save_errno; 758 errno = save_errno;
@@ -862,10 +862,10 @@ unix_connect(char *path)
862 int s, save_errno; 862 int s, save_errno;
863 863
864 if (uflag) { 864 if (uflag) {
865 if ((s = unix_bind(unix_dg_tmp_socket, SOCK_CLOEXEC)) < 0) 865 if ((s = unix_bind(unix_dg_tmp_socket, SOCK_CLOEXEC)) == -1)
866 return -1; 866 return -1;
867 } else { 867 } else {
868 if ((s = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0)) < 0) 868 if ((s = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0)) == -1)
869 return -1; 869 return -1;
870 } 870 }
871 871
@@ -878,7 +878,7 @@ unix_connect(char *path)
878 errno = ENAMETOOLONG; 878 errno = ENAMETOOLONG;
879 return -1; 879 return -1;
880 } 880 }
881 if (connect(s, (struct sockaddr *)&s_un, sizeof(s_un)) < 0) { 881 if (connect(s, (struct sockaddr *)&s_un, sizeof(s_un)) == -1) {
882 save_errno = errno; 882 save_errno = errno;
883 close(s); 883 close(s);
884 errno = save_errno; 884 errno = save_errno;
@@ -897,9 +897,9 @@ unix_listen(char *path)
897{ 897{
898 int s; 898 int s;
899 899
900 if ((s = unix_bind(path, 0)) < 0) 900 if ((s = unix_bind(path, 0)) == -1)
901 return -1; 901 return -1;
902 if (listen(s, 5) < 0) { 902 if (listen(s, 5) == -1) {
903 close(s); 903 close(s);
904 return -1; 904 return -1;
905 } 905 }
@@ -926,7 +926,7 @@ remote_connect(const char *host, const char *port, struct addrinfo hints)
926 926
927 for (res = res0; res; res = res->ai_next) { 927 for (res = res0; res; res = res->ai_next) {
928 if ((s = socket(res->ai_family, res->ai_socktype | 928 if ((s = socket(res->ai_family, res->ai_socktype |
929 SOCK_NONBLOCK, res->ai_protocol)) < 0) 929 SOCK_NONBLOCK, res->ai_protocol)) == -1)
930 continue; 930 continue;
931 931
932 /* Bind to a local port or source address if specified. */ 932 /* Bind to a local port or source address if specified. */
@@ -944,7 +944,7 @@ remote_connect(const char *host, const char *port, struct addrinfo hints)
944 errx(1, "getaddrinfo: %s", gai_strerror(error)); 944 errx(1, "getaddrinfo: %s", gai_strerror(error));
945 945
946 if (bind(s, (struct sockaddr *)ares->ai_addr, 946 if (bind(s, (struct sockaddr *)ares->ai_addr,
947 ares->ai_addrlen) < 0) 947 ares->ai_addrlen) == -1)
948 err(1, "bind failed"); 948 err(1, "bind failed");
949 freeaddrinfo(ares); 949 freeaddrinfo(ares);
950 } 950 }
@@ -1023,7 +1023,7 @@ local_listen(const char *host, const char *port, struct addrinfo hints)
1023 1023
1024 for (res = res0; res; res = res->ai_next) { 1024 for (res = res0; res; res = res->ai_next) {
1025 if ((s = socket(res->ai_family, res->ai_socktype, 1025 if ((s = socket(res->ai_family, res->ai_socktype,
1026 res->ai_protocol)) < 0) 1026 res->ai_protocol)) == -1)
1027 continue; 1027 continue;
1028 1028
1029 ret = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof(x)); 1029 ret = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof(x));
@@ -1043,7 +1043,7 @@ local_listen(const char *host, const char *port, struct addrinfo hints)
1043 } 1043 }
1044 1044
1045 if (!uflag && s != -1) { 1045 if (!uflag && s != -1) {
1046 if (listen(s, 1) < 0) 1046 if (listen(s, 1) == -1)
1047 err(1, "listen"); 1047 err(1, "listen");
1048 } 1048 }
1049 if (vflag && s != -1) { 1049 if (vflag && s != -1) {