diff options
author | phk <phk@FreeBSD.org> | 2001-03-30 19:16:04 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2001-03-30 19:16:04 +0000 |
commit | 117d0220172695939c81f5daccce72d9c953e804 (patch) | |
tree | 051116fae0ea34975d30a500f889c39516d7df68 | |
parent | 4d6d792fb54b2951a1cfc5b692c89a2e07e7d4a9 (diff) | |
download | FreeBSD-src-117d0220172695939c81f5daccce72d9c953e804.zip FreeBSD-src-117d0220172695939c81f5daccce72d9c953e804.tar.gz |
Don't core dump when given "-i -a". Problem caused by a mistaken
dereference of a kernel-pointer in userland.
PR: 26168
Submitted by: Peter Pentchev <roam@orbitel.bg>
-rw-r--r-- | usr.bin/netstat/if.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/usr.bin/netstat/if.c b/usr.bin/netstat/if.c index bc0f7d5..b45f4b7 100644 --- a/usr.bin/netstat/if.c +++ b/usr.bin/netstat/if.c @@ -448,9 +448,10 @@ intpr(interval, ifnetaddr, pfunc) const char *fmt; TAILQ_FOREACH(multiaddr, &ifnet.if_multiaddrs, ifma_link) { - if (kread(*(u_long *)multiaddr, (char *)&ifma, + if (kread((u_long)multiaddr, (char *)&ifma, sizeof ifma)) break; + multiaddr = &ifma; if (kread((u_long)ifma.ifma_addr, (char *)&msa, sizeof msa)) break; |