Commit 9c3f9707 authored by Martin KaFai Lau's avatar Martin KaFai Lau Committed by Alexei Starovoitov

net: Add a len argument to compat_ipv6_get_msfilter()

Pass the len to the compat_ipv6_get_msfilter() instead of
compat_ipv6_get_msfilter() getting it again from optlen.
Its counter part ipv6_get_msfilter() is also taking the
len from do_ipv6_getsockopt().
Signed-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
Link: https://lore.kernel.org/r/20220902002846.2892091-1-kafai@fb.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 75f23979
...@@ -1093,17 +1093,15 @@ static int ipv6_get_msfilter(struct sock *sk, void __user *optval, ...@@ -1093,17 +1093,15 @@ static int ipv6_get_msfilter(struct sock *sk, void __user *optval,
} }
static int compat_ipv6_get_msfilter(struct sock *sk, void __user *optval, static int compat_ipv6_get_msfilter(struct sock *sk, void __user *optval,
int __user *optlen) int __user *optlen, int len)
{ {
const int size0 = offsetof(struct compat_group_filter, gf_slist_flex); const int size0 = offsetof(struct compat_group_filter, gf_slist_flex);
struct compat_group_filter __user *p = optval; struct compat_group_filter __user *p = optval;
struct compat_group_filter gf32; struct compat_group_filter gf32;
struct group_filter gf; struct group_filter gf;
int len, err; int err;
int num; int num;
if (get_user(len, optlen))
return -EFAULT;
if (len < size0) if (len < size0)
return -EINVAL; return -EINVAL;
...@@ -1156,7 +1154,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname, ...@@ -1156,7 +1154,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
break; break;
case MCAST_MSFILTER: case MCAST_MSFILTER:
if (in_compat_syscall()) if (in_compat_syscall())
return compat_ipv6_get_msfilter(sk, optval, optlen); return compat_ipv6_get_msfilter(sk, optval, optlen, len);
return ipv6_get_msfilter(sk, optval, optlen, len); return ipv6_get_msfilter(sk, optval, optlen, len);
case IPV6_2292PKTOPTIONS: case IPV6_2292PKTOPTIONS:
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment