Ver Fonte

ipv6 mcast: Check address family of gf_group in getsockopt(MS_FILTER).

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
YOSHIFUJI Hideaki há 17 anos atrás
pai
commit
20c61fbd8d
1 ficheiros alterados com 2 adições e 0 exclusões
  1. 2 0
      net/ipv6/ipv6_sockglue.c

+ 2 - 0
net/ipv6/ipv6_sockglue.c

@@ -874,6 +874,8 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
 			return -EINVAL;
 			return -EINVAL;
 		if (copy_from_user(&gsf, optval, GROUP_FILTER_SIZE(0)))
 		if (copy_from_user(&gsf, optval, GROUP_FILTER_SIZE(0)))
 			return -EFAULT;
 			return -EFAULT;
+		if (gsf.gf_group.ss_family != AF_INET6)
+			return -EADDRNOTAVAIL;
 		lock_sock(sk);
 		lock_sock(sk);
 		err = ip6_mc_msfget(sk, &gsf,
 		err = ip6_mc_msfget(sk, &gsf,
 			(struct group_filter __user *)optval, optlen);
 			(struct group_filter __user *)optval, optlen);