Przeglądaj źródła

ipv6: Check IPV6_MULTICAST_LOOP option value.

Only 0 and 1 are valid for IPV6_MULTICAST_LOOP socket option,
and we should return an error of EINVAL otherwise, per RFC3493.

Based on patch from Shan Wei <shanwei@cn.fujitsu.com>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
YOSHIFUJI Hideaki 17 lat temu
rodzic
commit
28d4488216
1 zmienionych plików z 2 dodań i 0 usunięć
  1. 2 0
      net/ipv6/ipv6_sockglue.c

+ 2 - 0
net/ipv6/ipv6_sockglue.c

@@ -458,6 +458,8 @@ done:
 	case IPV6_MULTICAST_LOOP:
 	case IPV6_MULTICAST_LOOP:
 		if (optlen < sizeof(int))
 		if (optlen < sizeof(int))
 			goto e_inval;
 			goto e_inval;
+		if (val != valbool)
+			goto e_inval;
 		np->mc_loop = valbool;
 		np->mc_loop = valbool;
 		retv = 0;
 		retv = 0;
 		break;
 		break;