[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Tue, 10 Jun 2008 15:51:47 +0800
From: Shan Wei <shanwei@...fujitsu.com>
To: davem@...emloft.net
CC: netdev@...r.kernel.org
Subject: [RFC][PATCH 3/3] IPv4:Check IP_MULTICAST_LOOP option value
The IP_MULTICAST_LOOP option can only be set with o or 1. When
other valuse are set, the kernel should return an error of EINVAL.
In addition, the option should not be uesd by SOCK_STREAM type,
same as IP_MULTICAST_IF, IP_MULTICAST_TTL.
But the kernel doesn't check them.
Signed-off-by: Shan Wei<shanwei@...fujitsu.com>
---
net/ipv4/ip_sockglue.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
index e0514e8..82196a5 100644
--- a/net/ipv4/ip_sockglue.c
+++ b/net/ipv4/ip_sockglue.c
@@ -558,8 +558,12 @@ static int do_ip_setsockopt(struct sock *sk, int level,
inet->mc_ttl = val;
break;
case IP_MULTICAST_LOOP:
+ if (sk->sk_type == SOCK_STREAM)
+ goto e_inval;
if (optlen<1)
goto e_inval;
+ if (val < 0 || val > 1)
+ goto e_inval;
inet->mc_loop = !!val;
break;
case IP_MULTICAST_IF:
--
1.5.4.4
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists