Loading include/net/ipv6.h +2 −1 Original line number Diff line number Diff line Loading @@ -1136,7 +1136,8 @@ struct group_filter; int ip6_mc_source(int add, int omode, struct sock *sk, struct group_source_req *pgsr); int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf); int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf, struct sockaddr_storage *list); int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf, struct sockaddr_storage __user *p); Loading net/ipv6/ipv6_sockglue.c +1 −1 Original line number Diff line number Diff line Loading @@ -780,7 +780,7 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname, retv = -EINVAL; break; } retv = ip6_mc_msfilter(sk, gsf); retv = ip6_mc_msfilter(sk, gsf, gsf->gf_slist); kfree(gsf); break; Loading net/ipv6/mcast.c +4 −3 Original line number Diff line number Diff line Loading @@ -457,7 +457,8 @@ int ip6_mc_source(int add, int omode, struct sock *sk, return err; } int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf) int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf, struct sockaddr_storage *list) { const struct in6_addr *group; struct ipv6_mc_socklist *pmc; Loading Loading @@ -509,10 +510,10 @@ int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf) goto done; } newpsl->sl_max = newpsl->sl_count = gsf->gf_numsrc; for (i = 0; i < newpsl->sl_count; ++i) { for (i = 0; i < newpsl->sl_count; ++i, ++list) { struct sockaddr_in6 *psin6; psin6 = (struct sockaddr_in6 *)&gsf->gf_slist[i]; psin6 = (struct sockaddr_in6 *)list; newpsl->sl_addr[i] = psin6->sin6_addr; } err = ip6_mc_add_src(idev, group, gsf->gf_fmode, Loading Loading
include/net/ipv6.h +2 −1 Original line number Diff line number Diff line Loading @@ -1136,7 +1136,8 @@ struct group_filter; int ip6_mc_source(int add, int omode, struct sock *sk, struct group_source_req *pgsr); int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf); int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf, struct sockaddr_storage *list); int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf, struct sockaddr_storage __user *p); Loading
net/ipv6/ipv6_sockglue.c +1 −1 Original line number Diff line number Diff line Loading @@ -780,7 +780,7 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname, retv = -EINVAL; break; } retv = ip6_mc_msfilter(sk, gsf); retv = ip6_mc_msfilter(sk, gsf, gsf->gf_slist); kfree(gsf); break; Loading
net/ipv6/mcast.c +4 −3 Original line number Diff line number Diff line Loading @@ -457,7 +457,8 @@ int ip6_mc_source(int add, int omode, struct sock *sk, return err; } int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf) int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf, struct sockaddr_storage *list) { const struct in6_addr *group; struct ipv6_mc_socklist *pmc; Loading Loading @@ -509,10 +510,10 @@ int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf) goto done; } newpsl->sl_max = newpsl->sl_count = gsf->gf_numsrc; for (i = 0; i < newpsl->sl_count; ++i) { for (i = 0; i < newpsl->sl_count; ++i, ++list) { struct sockaddr_in6 *psin6; psin6 = (struct sockaddr_in6 *)&gsf->gf_slist[i]; psin6 = (struct sockaddr_in6 *)list; newpsl->sl_addr[i] = psin6->sin6_addr; } err = ip6_mc_add_src(idev, group, gsf->gf_fmode, Loading