diff options
author | 2015-08-24 14:00:28 +0000 | |
---|---|---|
committer | 2015-08-24 14:00:28 +0000 | |
commit | 9c7945350d596b87caf3da22e5cdabd8b67cb09c (patch) | |
tree | a3d2db076d59036e1313e580c2cb6927abd562f1 /sys/netinet6/ip6_mroute.c | |
parent | Mark up command arguments properly using Cm. (diff) | |
download | wireguard-openbsd-9c7945350d596b87caf3da22e5cdabd8b67cb09c.tar.xz wireguard-openbsd-9c7945350d596b87caf3da22e5cdabd8b67cb09c.zip |
In kernel initialize struct sockaddr_in and sockaddr_in6 to zero
everywhere to avoid passing around pointers to uninitialized stack
memory. While there, fix the call to in6_recoverscope() in
fill_drlist().
OK deraadt@ mpi@
Diffstat (limited to 'sys/netinet6/ip6_mroute.c')
-rw-r--r-- | sys/netinet6/ip6_mroute.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index e6cb30a07cc..ed028a80c63 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -557,6 +557,7 @@ ip6_mrouter_done(void) for (mifi = 0; mifi < nummifs; mifi++) { if (mif6table[mifi].m6_ifp && !(mif6table[mifi].m6_flags & MIFF_REGISTER)) { + memset(&ifr, 0, sizeof(ifr)); ifr.ifr_addr.sin6_family = AF_INET6; ifr.ifr_addr.sin6_addr= in6addr_any; ifp = mif6table[mifi].m6_ifp; @@ -695,6 +696,7 @@ add_m6if(struct mif6ctl *mifcp) * Enable promiscuous reception of all IPv6 multicasts * from the interface. */ + memset(&ifr, 0, sizeof(ifr)); ifr.ifr_addr.sin6_family = AF_INET6; ifr.ifr_addr.sin6_addr = in6addr_any; error = (*ifp->if_ioctl)(ifp, SIOCADDMULTI, (caddr_t)&ifr); @@ -760,6 +762,7 @@ del_m6if(mifi_t *mifip) */ ifp = mifp->m6_ifp; + memset(&ifr, 0, sizeof(ifr)); ifr.ifr_addr.sin6_family = AF_INET6; ifr.ifr_addr.sin6_addr = in6addr_any; (*ifp->if_ioctl)(ifp, SIOCDELMULTI, (caddr_t)&ifr); |