summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbms <bms@FreeBSD.org>2009-11-19 12:18:30 +0000
committerbms <bms@FreeBSD.org>2009-11-19 12:18:30 +0000
commit63de6a0a63bf8476437bd1976b954c67f7b9e2b1 (patch)
treef83f561fb355f1a2eda0d933f7609441214566e9
parent028af3a4216ced0ac9ef46412fb2ae392c9db462 (diff)
downloadFreeBSD-src-63de6a0a63bf8476437bd1976b954c67f7b9e2b1.zip
FreeBSD-src-63de6a0a63bf8476437bd1976b954c67f7b9e2b1.tar.gz
Adapt r197130 to IPv6 stack:
Fix an obvious logic error in the IPv4 multicast leave processing, where the filter mode vector was not updated correctly after the leave. MFC after: 1 day
-rw-r--r--sys/netinet6/in6_mcast.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet6/in6_mcast.c b/sys/netinet6/in6_mcast.c
index eedebb9..bba34ec 100644
--- a/sys/netinet6/in6_mcast.c
+++ b/sys/netinet6/in6_mcast.c
@@ -2272,8 +2272,10 @@ out_im6f_rollback:
if (is_final) {
/* Remove the gap in the membership array. */
- for (++idx; idx < imo->im6o_num_memberships; ++idx)
+ for (++idx; idx < imo->im6o_num_memberships; ++idx) {
imo->im6o_membership[idx-1] = imo->im6o_membership[idx];
+ imo->im6o_mfilters[idx-1] = imo->im6o_mfilters[idx];
+ }
imo->im6o_num_memberships--;
}
OpenPOWER on IntegriCloud