summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2015-11-04 19:09:42 +0000
committerume <ume@FreeBSD.org>2015-11-04 19:09:42 +0000
commitb2d9de8ee8b70ad9b7bc4ab792b937cd8b629684 (patch)
tree4f56d667f78f1830b2283e901952c18ca5b0cf18 /usr.bin
parent6b8c1fe2431e303e1161442700dee3d9f958d47d (diff)
downloadFreeBSD-src-b2d9de8ee8b70ad9b7bc4ab792b937cd8b629684.zip
FreeBSD-src-b2d9de8ee8b70ad9b7bc4ab792b937cd8b629684.tar.gz
Since sa->sa_len doesn't match sizeof(struct sockaddr_dl),
getnameinfo() fails against sockaddr_dl. This commit is workaround for this problem.
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/netstat/route.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/usr.bin/netstat/route.c b/usr.bin/netstat/route.c
index 2ab35a0..a5102ae 100644
--- a/usr.bin/netstat/route.c
+++ b/usr.bin/netstat/route.c
@@ -527,6 +527,10 @@ routename(struct sockaddr *sa, int flags)
static char line[NI_MAXHOST];
int error, f;
+ /* XXX: sa->sa_len doesn't match sizeof(struct sockaddr_dl) */
+ if (sa->sa_family == AF_LINK)
+ sa->sa_len = sizeof(struct sockaddr_dl);
+
f = (flags) ? NI_NUMERICHOST : 0;
error = getnameinfo(sa, sa->sa_len, line, sizeof(line),
NULL, 0, f);
OpenPOWER on IntegriCloud