Author: bms
Date: Sat Sep 12 19:07:03 2009
New Revision: 197130
URL: http://svn.freebsd.org/changeset/base/197130

Log:
  Fix an obvious logic error in the IPv4 multicast leave processing,
  where the filter mode vector was not updated correctly after the leave.
  
  PR:           138691
  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:55:15 2009        (r197129)
+++ head/sys/netinet/in_mcast.c Sat Sep 12 19:07:03 2009        (r197130)
@@ -2278,9 +2278,11 @@ out_imf_rollback:
        imf_reap(imf);
 
        if (is_final) {
-               /* Remove the gap in the membership array. */
-               for (++idx; idx < imo->imo_num_memberships; ++idx)
+               /* Remove the gap in the membership and filter array. */
+               for (++idx; idx < imo->imo_num_memberships; ++idx) {
                        imo->imo_membership[idx-1] = imo->imo_membership[idx];
+                       imo->imo_mfilters[idx-1] = imo->imo_mfilters[idx];
+               }
                imo->imo_num_memberships--;
        }
 
_______________________________________________
svn-src-all@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"

Reply via email to