diff options
author | bms <bms@FreeBSD.org> | 2009-11-19 12:18:30 +0000 |
---|---|---|
committer | bms <bms@FreeBSD.org> | 2009-11-19 12:18:30 +0000 |
commit | 63de6a0a63bf8476437bd1976b954c67f7b9e2b1 (patch) | |
tree | f83f561fb355f1a2eda0d933f7609441214566e9 /sys/netinet6/in6_mcast.c | |
parent | 028af3a4216ced0ac9ef46412fb2ae392c9db462 (diff) | |
download | FreeBSD-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
Diffstat (limited to 'sys/netinet6/in6_mcast.c')
-rw-r--r-- | sys/netinet6/in6_mcast.c | 4 |
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--; } |