diff options
| author | Mark Johnston <markj@FreeBSD.org> | 2026-04-24 13:22:51 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2026-04-24 13:22:51 +0000 |
| commit | e0751ae801b3e29c6dd52905ef1d63d5cd643b0a (patch) | |
| tree | 552c8cdbca19599b11395c600b81828a8833f112 | |
| parent | eb837cb8b2073c09bafaf3318f5bb103827b2bca (diff) | |
ip_mroute: Avoid leaking uninitialized bytes to the routing daemon
Reported by: KMSAN
MFC after: 1 week
| -rw-r--r-- | sys/netinet/ip_mroute.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index 359755b19e95..14bd458b74f3 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -2459,13 +2459,14 @@ pim_register_send_upcall(struct mfctable *mfct, struct ip *ip, struct vif *vifp, /* Send message to routing daemon */ im = mtod(mb_first, struct igmpmsg *); - im->im_msgtype = IGMPMSG_WHOLEPKT; - im->im_mbz = 0; - im->im_vif = vifp - mfct->viftable; - im->im_src = ip->ip_src; - im->im_dst = ip->ip_dst; - - k_igmpsrc.sin_addr = ip->ip_src; + memset(im, 0, sizeof(*im)); + im->im_msgtype = IGMPMSG_WHOLEPKT; + im->im_mbz = 0; + im->im_vif = vifp - mfct->viftable; + im->im_src = ip->ip_src; + im->im_dst = ip->ip_dst; + + k_igmpsrc.sin_addr = ip->ip_src; MRTSTAT_INC(mrts_upcalls); |
