Skip site navigation (1)Skip section navigation (2)
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>