Subject: [patch net-2.6.25 08/10][NETNS][IPV6] make mld_max_msf readonly in other namespaces

From: Daniel Lezcano <[email-masked]>
Date: Wed, 09 Jan 2008 17:45:41 +0100

The mld_max_msf protects the system with a maximum allowed multicast 
source filters. Making this variable per namespace can be potentially
an problem if someone inside a namespace set it to a big value, that
will impact the whole system including other namespaces.

I don't see any benefits to have it per namespace for now, so in order 
to keep a directory entry in a newly created namespace, I make it
read-only when we are not in the initial network namespace.

Signed-off-by: Daniel Lezcano <[email-masked]>
---
 net/ipv6/sysctl_net_ipv6.c |    6 ++++++
 1 file changed, 6 insertions(+)

Index: net-2.6.25/net/ipv6/sysctl_net_ipv6.c
===================================================================
--- net-2.6.25.orig/net/ipv6/sysctl_net_ipv6.c
+++ net-2.6.25/net/ipv6/sysctl_net_ipv6.c
@@ -122,6 +122,12 @@ static int ipv6_sysctl_net_init(struct n
       	ipv6_table[5].data = &net->ipv6.sysctl.frags.timeout;
     	ipv6_table[6].data = &net->ipv6.sysctl.frags.secret_interval;
 
+ 	/* We don't want this value to be per namespace, it should be global
+	   to all namespaces, so make it read-only when we are not in the
+	   init network namespace */
+    	if (net != &init_net)
+    		ipv6_table[7].mode = 0444;
+
 	net->ipv6.sysctl.table = register_net_sysctl_table(net, net_ipv6_ctl_path,
 							   ipv6_table);
 	if (!net->ipv6.sysctl.table)

--