The following reply was made to PR kern/138689; it has been noted by GNATS.

From: dfil...@freebsd.org (dfilter service)
To: bug-follo...@freebsd.org
Cc:  
Subject: Re: kern/138689: commit references a PR
Date: Sat, 12 Sep 2009 18:55:27 +0000 (UTC)

 Author: bms
 Date: Sat Sep 12 18:55:15 2009
 New Revision: 197129
 URL: http://svn.freebsd.org/changeset/base/197129
 
 Log:
   Fix an API issue in leave processing for IPv4 multicast groups.
    * Do not assume that the group lookup performed by imo_match_group()
      is valid when ifp is NULL in this case.
    * Instead, return EADDRNOTAVAIL if the ifp cannot be resolved for the
      membership we are being asked to leave.
   
   Caveat user:
    * The way IPv4 multicast memberships are implemented in the inpcb layer
      at the moment, has the side-effect that struct ip_moptions will
      still hold the membership, under the old ifp, until ip_freemoptions()
      is called for the parent inpcb.
    * The underlying issue is: the inpcb layer does not get notification
      of ifp being detached going away in a thread-safe manner.
      This is non-trivial to fix.
   
   But hey, at least the kernel should't panic when you unplug a card.
   
   PR:          138689
   Submitted by:        Stef Walter
   MFC after:   5 days
 
 Modified:
   head/sys/netinet/in_mcast.c
 
 Modified: head/sys/netinet/in_mcast.c
 ==============================================================================
 --- head/sys/netinet/in_mcast.c        Sat Sep 12 18:24:31 2009        
(r197128)
 +++ head/sys/netinet/in_mcast.c        Sat Sep 12 18:55:15 2009        
(r197129)
 @@ -2189,6 +2189,9 @@ inp_leave_group(struct inpcb *inp, struc
        if (!IN_MULTICAST(ntohl(gsa->sin.sin_addr.s_addr)))
                return (EINVAL);
  
 +      if (ifp == NULL)
 +              return (EADDRNOTAVAIL);
 +
        /*
         * Find the membership in the membership array.
         */
 _______________________________________________
 svn-src-...@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
 
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to