Re: [RFC][PATCH 3/3] IPv4:Check IP_MULTICAST_LOOP option value

Previous thread: [RFC][PATCH 2/3] IPv6:Check IPV6_MULTICAST_LOOP option value by Shan Wei on Tuesday, June 10, 2008 - 12:51 am. (2 messages)

Next thread: net-2.6 merged into net-next-2.6 by David Miller on Tuesday, June 10, 2008 - 2:50 am. (4 messages)
From: Shan Wei
Date: Tuesday, June 10, 2008 - 12:51 am

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@cn.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

--

From: YOSHIFUJI Hideaki /
Date: Tuesday, June 10, 2008 - 1:15 am

Is there any standard reference about this?

--yoshfuji
--

From: YOSHIFUJI Hideaki /
Date: Tuesday, June 10, 2008 - 1:32 am

And actually I diagree to check "val."
(For example, FreeBSD does not check this.)

--yoshfuji
--

From: Shan Wei
Date: Tuesday, June 10, 2008 - 1:32 am

I have not found it.


--

From: YOSHIFUJI Hideaki /
Date: Tuesday, June 10, 2008 - 1:42 am

I disagree.
We follow what traditional BSDs do, and they do not check if the
value is 0 or 1 for IP_MULTICAST_LOOP.
On the other hand, they do for IPV6_MULTICAST_LOOP.

--yoshfuji
--

From: Shan Wei
Date: Tuesday, June 10, 2008 - 2:07 am

Ok.
no need to check "val".

The option should not be uesd by SOCK_STREAM type.


-- 
Regards
単 衛
--------------------------------------------------
Shan Wei
Development Dept.I

Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST)
8/F., Civil Defense Building, No.189 Guangzhou Road,
Nanjing, 210029, China
TEL:+86+25-86630566-836
FUJITSU INTERNAL:79955-836
FAX:+86+25-83317685
Mail:shanwei@cn.fujitsu.com
--------------------------------------------------
This communication is for use by the intended recipient(s) only and may contain information that is privileged, confidential and exempt from disclosure under applicable law. If you are not an intended recipient of this communication, you are hereby notified that any dissemination, distribution or copying hereof is strictly prohibited.  If you have received this communication in error, please notify me by reply e-mail, permanently delete this communication from your system, and destroy any hard copies you may have printed.

--

Previous thread: [RFC][PATCH 2/3] IPv6:Check IPV6_MULTICAST_LOOP option value by Shan Wei on Tuesday, June 10, 2008 - 12:51 am. (2 messages)

Next thread: net-2.6 merged into net-next-2.6 by David Miller on Tuesday, June 10, 2008 - 2:50 am. (4 messages)