summaryrefslogtreecommitdiff
path: root/src/usr.bin/nc/netcat.c
diff options
context:
space:
mode:
authorbluhm <>2020-01-06 15:19:12 +0000
committerbluhm <>2020-01-06 15:19:12 +0000
commite0ad16109c712249c045cc92577b17fba4169ab7 (patch)
tree2a96360b884ccebed70274aa05c08e9766625d07 /src/usr.bin/nc/netcat.c
parent14041540b59c54f88f0da2ebddc34c220df63c5e (diff)
downloadopenbsd-e0ad16109c712249c045cc92577b17fba4169ab7.tar.gz
openbsd-e0ad16109c712249c045cc92577b17fba4169ab7.tar.bz2
openbsd-e0ad16109c712249c045cc92577b17fba4169ab7.zip
When using UNIX domain sockets, always call report_sock() with the
path name of the socket. This avoids bad errors from getnameinfo(3). Use the same error check for both calls to getnameinfo(3). OK millert@ tb@
Diffstat (limited to 'src/usr.bin/nc/netcat.c')
-rw-r--r--src/usr.bin/nc/netcat.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/usr.bin/nc/netcat.c b/src/usr.bin/nc/netcat.c
index 051daf1811..4ff935c58e 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.212 2019/11/17 17:38:33 deraadt Exp $ */ 1/* $OpenBSD: netcat.c,v 1.213 2020/01/06 15:19:12 bluhm 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.
@@ -597,7 +597,8 @@ main(int argc, char *argv[])
597 597
598 if (vflag) 598 if (vflag)
599 report_sock("Connection received", 599 report_sock("Connection received",
600 (struct sockaddr *)&z, len, NULL); 600 (struct sockaddr *)&z, len,
601 family == AF_UNIX ? host : NULL);
601 602
602 readwrite(s, NULL); 603 readwrite(s, NULL);
603 } else { 604 } else {
@@ -1784,11 +1785,14 @@ report_sock(const char *msg, const struct sockaddr *sa, socklen_t salen,
1784 if (nflag) 1785 if (nflag)
1785 flags |= NI_NUMERICHOST; 1786 flags |= NI_NUMERICHOST;
1786 1787
1787 if ((herr = getnameinfo(sa, salen, host, sizeof(host), 1788 herr = getnameinfo(sa, salen, host, sizeof(host), port, sizeof(port),
1788 port, sizeof(port), flags)) != 0) { 1789 flags);
1789 if (herr == EAI_SYSTEM) 1790 switch (herr) {
1791 case 0:
1792 break;
1793 case EAI_SYSTEM:
1790 err(1, "getnameinfo"); 1794 err(1, "getnameinfo");
1791 else 1795 default:
1792 errx(1, "getnameinfo: %s", gai_strerror(herr)); 1796 errx(1, "getnameinfo: %s", gai_strerror(herr));
1793 } 1797 }
1794 1798