diff options
author | bluhm <> | 2020-01-06 15:19:12 +0000 |
---|---|---|
committer | bluhm <> | 2020-01-06 15:19:12 +0000 |
commit | e0ad16109c712249c045cc92577b17fba4169ab7 (patch) | |
tree | 2a96360b884ccebed70274aa05c08e9766625d07 /src/usr.bin/nc/netcat.c | |
parent | 14041540b59c54f88f0da2ebddc34c220df63c5e (diff) | |
download | openbsd-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.c | 16 |
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 | ||