summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/in.c6
-rw-r--r--sys/netinet/ip_mroute.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/sys/netinet/in.c b/sys/netinet/in.c
index d1fa710c892..5063357db80 100644
--- a/sys/netinet/in.c
+++ b/sys/netinet/in.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: in.c,v 1.120 2015/07/08 07:56:51 mpi Exp $ */
+/* $OpenBSD: in.c,v 1.121 2015/08/24 14:00:29 bluhm Exp $ */
/* $NetBSD: in.c,v 1.26 1996/02/13 23:41:39 christos Exp $ */
/*
@@ -809,7 +809,7 @@ in_addmulti(struct in_addr *ap, struct ifnet *ifp)
* New address; allocate a new multicast record
* and link it into the interface's multicast list.
*/
- inm = malloc(sizeof(*inm), M_IPMADDR, M_NOWAIT);
+ inm = malloc(sizeof(*inm), M_IPMADDR, M_NOWAIT | M_ZERO);
if (inm == NULL)
return (NULL);
@@ -824,6 +824,7 @@ in_addmulti(struct in_addr *ap, struct ifnet *ifp)
* Ask the network driver to update its multicast reception
* filter appropriately for the new address.
*/
+ memset(&ifr, 0, sizeof(ifr));
memcpy(&ifr.ifr_addr, &inm->inm_sin, sizeof(inm->inm_sin));
if ((*ifp->if_ioctl)(ifp, SIOCADDMULTI,(caddr_t)&ifr) != 0) {
free(inm, M_IPMADDR, sizeof(*inm));
@@ -867,6 +868,7 @@ in_delmulti(struct in_multi *inm)
* reception filter.
*/
if (ifp != NULL) {
+ memset(&ifr, 0, sizeof(ifr));
satosin(&ifr.ifr_addr)->sin_len =
sizeof(struct sockaddr_in);
satosin(&ifr.ifr_addr)->sin_family = AF_INET;
diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c
index 19ebc85000d..f55e79c606a 100644
--- a/sys/netinet/ip_mroute.c
+++ b/sys/netinet/ip_mroute.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ip_mroute.c,v 1.79 2015/07/15 17:55:08 deraadt Exp $ */
+/* $OpenBSD: ip_mroute.c,v 1.80 2015/08/24 14:00:29 bluhm Exp $ */
/* $NetBSD: ip_mroute.c,v 1.85 2004/04/26 01:31:57 matt Exp $ */
/*
@@ -889,6 +889,7 @@ add_vif(struct mbuf *m)
return (EOPNOTSUPP);
/* Enable promiscuous reception of all IP multicasts. */
+ memset(&ifr, 0, sizeof(ifr));
satosin(&ifr.ifr_addr)->sin_len = sizeof(struct sockaddr_in);
satosin(&ifr.ifr_addr)->sin_family = AF_INET;
satosin(&ifr.ifr_addr)->sin_addr = zeroin_addr;
@@ -943,6 +944,7 @@ reset_vif(struct vif *vifp)
reg_vif_num = VIFI_INVALID;
#endif
} else {
+ memset(&ifr, 0, sizeof(ifr));
satosin(&ifr.ifr_addr)->sin_len = sizeof(struct sockaddr_in);
satosin(&ifr.ifr_addr)->sin_family = AF_INET;
satosin(&ifr.ifr_addr)->sin_addr = zeroin_addr;