diff options
author | YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> | 2008-06-11 14:14:51 -0400 |
---|---|---|
committer | YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> | 2008-06-11 20:19:09 -0400 |
commit | 28d4488216645cd71402925cffde9528b0cfdb7e (patch) | |
tree | c382b026e6c480827f0c539e3d2dcf3943389347 /net | |
parent | e8766fc86b34d44a8c55a2f9d71da69e091b1ca4 (diff) |
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>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv6/ipv6_sockglue.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index ce794d6acb70..9a3697172d5e 100644 --- a/net/ipv6/ipv6_sockglue.c +++ b/net/ipv6/ipv6_sockglue.c | |||
@@ -458,6 +458,8 @@ done: | |||
458 | case IPV6_MULTICAST_LOOP: | 458 | case IPV6_MULTICAST_LOOP: |
459 | if (optlen < sizeof(int)) | 459 | if (optlen < sizeof(int)) |
460 | goto e_inval; | 460 | goto e_inval; |
461 | if (val != valbool) | ||
462 | goto e_inval; | ||
461 | np->mc_loop = valbool; | 463 | np->mc_loop = valbool; |
462 | retv = 0; | 464 | retv = 0; |
463 | break; | 465 | break; |