diff options
author | ume <ume@FreeBSD.org> | 2015-11-04 19:09:42 +0000 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2015-11-04 19:09:42 +0000 |
commit | b2d9de8ee8b70ad9b7bc4ab792b937cd8b629684 (patch) | |
tree | 4f56d667f78f1830b2283e901952c18ca5b0cf18 | |
parent | 6b8c1fe2431e303e1161442700dee3d9f958d47d (diff) | |
download | FreeBSD-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.
-rw-r--r-- | usr.bin/netstat/route.c | 4 |
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); |