Date: Sat, 14 Mar 2009 14:06:46 -0700 From: Sam Leffler <sam@freebsd.org> To: Bruce Simpson <bms@incunabulum.net> Cc: current@freebsd.org, freebsd-net <net@freebsd.org> Subject: Re: IGMP+WiFi panic on recent kernel - in igmp_fasttimo() Message-ID: <49BC1C66.7030400@freebsd.org> In-Reply-To: <49BB0D3E.2020306@incunabulum.net> References: <1236937253.2282.0.camel@localhost> <49BAEA9F.8020302@incunabulum.net> <49BB0D3E.2020306@incunabulum.net>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------020100040401000006060803 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit This patches avoids the crash. Not sure how ifma_protospec is supposed to be handled so I'm not committing it. Sam --------------020100040401000006060803 Content-Type: text/plain; name="mcast.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="mcast.patch" Index: in.c =================================================================== --- in.c (revision 189750) +++ in.c (working copy) @@ -1040,7 +1040,8 @@ */ IF_ADDR_LOCK(ifp); TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { - if (ifma->ifma_addr->sa_family != AF_INET) + if (ifma->ifma_addr->sa_family != AF_INET || + ifma->ifma_protospec == NULL) continue; inm = (struct in_multi *)ifma->ifma_protospec; LIST_INSERT_HEAD(&purgeinms, inm, inm_link); Index: igmp.c =================================================================== --- igmp.c (revision 189750) +++ igmp.c (working copy) @@ -623,7 +623,8 @@ if (igi->igi_version == IGMP_VERSION_3) { IF_ADDR_LOCK(ifp); TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { - if (ifma->ifma_addr->sa_family != AF_INET) + if (ifma->ifma_addr->sa_family != AF_INET || + ifma->ifma_protospec == NULL) continue; inm = (struct in_multi *)ifma->ifma_protospec; if (inm->inm_state == IGMP_LEAVING_MEMBER) { --------------020100040401000006060803--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49BC1C66.7030400>