|
@@ -571,6 +571,7 @@ static int do_ip_setsockopt(struct sock *sk, int level,
|
|
|
int optname, char __user *optval, unsigned int optlen)
|
|
|
{
|
|
|
struct inet_sock *inet = inet_sk(sk);
|
|
|
+ struct net *net = sock_net(sk);
|
|
|
int val = 0, err;
|
|
|
bool needs_rtnl = setsockopt_needs_rtnl(optname);
|
|
|
|
|
@@ -910,7 +911,7 @@ static int do_ip_setsockopt(struct sock *sk, int level,
|
|
|
}
|
|
|
/* numsrc >= (1G-4) overflow in 32 bits */
|
|
|
if (msf->imsf_numsrc >= 0x3ffffffcU ||
|
|
|
- msf->imsf_numsrc > sysctl_igmp_max_msf) {
|
|
|
+ msf->imsf_numsrc > net->ipv4.sysctl_igmp_max_msf) {
|
|
|
kfree(msf);
|
|
|
err = -ENOBUFS;
|
|
|
break;
|
|
@@ -1065,7 +1066,7 @@ static int do_ip_setsockopt(struct sock *sk, int level,
|
|
|
|
|
|
/* numsrc >= (4G-140)/128 overflow in 32 bits */
|
|
|
if (gsf->gf_numsrc >= 0x1ffffff ||
|
|
|
- gsf->gf_numsrc > sysctl_igmp_max_msf) {
|
|
|
+ gsf->gf_numsrc > net->ipv4.sysctl_igmp_max_msf) {
|
|
|
err = -ENOBUFS;
|
|
|
goto mc_msf_out;
|
|
|
}
|