[MCAST]: ip[6]_mc_add_src should be called when number of sources is zero
And filter mode is exclude. Further explanation by David Stevens: Multicast source filters aren't widely used yet, and that's really the only feature that's affected if an application actually exercises this bug, as far as I can tell. An ordinary filter-less multicast join should still work, and only forwarded multicast traffic making use of filters and doing empty-source filters with the MSFILTER ioctl would be at risk of not getting multicast traffic forwarded to them because the reports generated would not be based on the correct counts. Signed-off-by: Yan Zheng <yanzheng@21cn.com Acked-by: David L Stevens <dlstevens@us.ibm.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
This commit is contained in:
parent
ec1890c5df
commit
8713dbf057
2 changed files with 7 additions and 2 deletions
|
@ -1908,8 +1908,11 @@ int ip_mc_msfilter(struct sock *sk, struct ip_msfilter *msf, int ifindex)
|
|||
sock_kfree_s(sk, newpsl, IP_SFLSIZE(newpsl->sl_max));
|
||||
goto done;
|
||||
}
|
||||
} else
|
||||
} else {
|
||||
newpsl = NULL;
|
||||
(void) ip_mc_add_src(in_dev, &msf->imsf_multiaddr,
|
||||
msf->imsf_fmode, 0, NULL, 0);
|
||||
}
|
||||
psl = pmc->sflist;
|
||||
if (psl) {
|
||||
(void) ip_mc_del_src(in_dev, &msf->imsf_multiaddr, pmc->sfmode,
|
||||
|
|
|
@ -545,8 +545,10 @@ int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf)
|
|||
sock_kfree_s(sk, newpsl, IP6_SFLSIZE(newpsl->sl_max));
|
||||
goto done;
|
||||
}
|
||||
} else
|
||||
} else {
|
||||
newpsl = NULL;
|
||||
(void) ip6_mc_add_src(idev, group, gsf->gf_fmode, 0, NULL, 0);
|
||||
}
|
||||
psl = pmc->sflist;
|
||||
if (psl) {
|
||||
(void) ip6_mc_del_src(idev, group, pmc->sfmode,
|
||||
|
|
Loading…
Reference in a new issue