Re: IGMP+WiFi panic on recent kernel - in igmp_fasttimo()

From: Coleman Kane <cokane_at_FreeBSD.org>
Date: Mon, 16 Mar 2009 15:53:30 -0400
The crash that I am seeing (using if_ndis) occurs in igmp_fasttimo...
This patch doesn't fix that, I'll get more info as soon as I can.

On Sat, 2009-03-14 at 14:06 -0700, Sam Leffler wrote:
> This patches avoids the crash.  Not sure how ifma_protospec is supposed 
> to be handled so I'm not committing it.
> 
>     Sam
> 
> plain text document attachment (mcast.patch)
> Index: in.c
> ===================================================================
> --- in.c	(revision 189750)
> +++ in.c	(working copy)
> _at__at_ -1040,7 +1040,8 _at__at_
>  	 */
>  	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)
> _at__at_ -623,7 +623,8 _at__at_
>  	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) {
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
-- 
Coleman Kane

Received on Mon Mar 16 2009 - 19:10:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:44 UTC