diff options
author | 2006-05-30 19:42:58 +0000 | |
---|---|---|
committer | 2006-05-30 19:42:58 +0000 | |
commit | 4a8552d97e541679798b7ed2057006de55c1bad5 (patch) | |
tree | a2de60df882644551eaf6dd523c2166a9ac33a86 | |
parent | rework the schizo attach to match the upaid and paddr regs (diff) | |
download | wireguard-openbsd-4a8552d97e541679798b7ed2057006de55c1bad5.tar.xz wireguard-openbsd-4a8552d97e541679798b7ed2057006de55c1bad5.zip |
this fixes a crash observed by Naddy on amd64, and permits the src/dst ip's to
be visible .. when IPv6 sa flows are present
ok claudio@
-rw-r--r-- | sbin/route/show.c | 19 | ||||
-rw-r--r-- | usr.bin/netstat/show.c | 14 |
2 files changed, 17 insertions, 16 deletions
diff --git a/sbin/route/show.c b/sbin/route/show.c index 30d1d4cbeba..c496688b3a7 100644 --- a/sbin/route/show.c +++ b/sbin/route/show.c @@ -1,4 +1,4 @@ -/* $OpenBSD: show.c,v 1.52 2006/05/27 18:26:45 claudio Exp $ */ +/* $OpenBSD: show.c,v 1.53 2006/05/30 19:42:58 todd Exp $ */ /* $NetBSD: show.c,v 1.1 1996/11/15 18:01:41 gwr Exp $ */ /* @@ -362,17 +362,17 @@ p_encap(struct sockaddr *sa, struct sockaddr *mask, int width) char *cp; unsigned short port; + if (mask) + cp = netname(sa, mask); + else + cp = routename(sa); switch (sa->sa_family) { - case AF_INET6: { - break; - } - default: - if (mask) - cp = netname(sa, mask); - else - cp = routename(sa); + case AF_INET: port = ntohs(((struct sockaddr_in *)sa)->sin_port); break; + case AF_INET6: + port = ntohs(((struct sockaddr_in6 *)sa)->sin6_port); + break; } if (width < 0) printf("%s", cp); @@ -389,6 +389,7 @@ p_protocol(struct sadb_protocol *sap, struct sockaddr *sa, struct sadb_protocol *saft, int proto) { printf("%-6u", sap->sadb_protocol_proto); + if (sa) p_sockaddr(sa, NULL, 0, -1); else diff --git a/usr.bin/netstat/show.c b/usr.bin/netstat/show.c index cbdd6c97b6c..4bc98b06223 100644 --- a/usr.bin/netstat/show.c +++ b/usr.bin/netstat/show.c @@ -1,4 +1,4 @@ -/* $OpenBSD: show.c,v 1.1 2006/05/27 19:16:37 claudio Exp $ */ +/* $OpenBSD: show.c,v 1.2 2006/05/30 19:42:58 todd Exp $ */ /* $NetBSD: show.c,v 1.1 1996/11/15 18:01:41 gwr Exp $ */ /* @@ -372,15 +372,15 @@ p_encap(struct sockaddr *sa, struct sockaddr *mask, int width) char *cp; unsigned short port; + if (mask) + cp = netname(sa, mask); + else + cp = routename(sa); switch (sa->sa_family) { - case AF_INET6: { + case AF_INET6: + port = ntohs(((struct sockaddr_in6 *)sa)->sin6_port); break; - } default: - if (mask) - cp = netname(sa, mask); - else - cp = routename(sa); port = ntohs(((struct sockaddr_in *)sa)->sin_port); break; } |