summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorAntoine Tenart <atenart@kernel.org>2021-10-12 16:54:37 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-10-27 09:32:39 +0200
commit2beaba79a9d9fdcabdd41a38eb98d97a5fb901dc (patch)
treeeab62bf5e45d52f5b158e8a77e8c4f1487298438 /net
parent721bc5d40f5cad497f1c713d5ba2fd78cb76c25f (diff)
downloadlinux-stable-2beaba79a9d9fdcabdd41a38eb98d97a5fb901dc.tar.gz
linux-stable-2beaba79a9d9fdcabdd41a38eb98d97a5fb901dc.tar.bz2
linux-stable-2beaba79a9d9fdcabdd41a38eb98d97a5fb901dc.zip
netfilter: ipvs: make global sysctl readonly in non-init netns
[ Upstream commit 174c376278949c44aad89c514a6b5db6cee8db59 ] Because the data pointer of net/ipv4/vs/debug_level is not updated per netns, it must be marked as read-only in non-init netns. Fixes: c6d2d445d8de ("IPVS: netns, final patch enabling network name space.") Signed-off-by: Antoine Tenart <atenart@kernel.org> Acked-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/ipvs/ip_vs_ctl.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
index 1adbcdda2158..dccaa816c17b 100644
--- a/net/netfilter/ipvs/ip_vs_ctl.c
+++ b/net/netfilter/ipvs/ip_vs_ctl.c
@@ -3922,6 +3922,11 @@ static int __net_init ip_vs_control_net_init_sysctl(struct netns_ipvs *ipvs)
tbl[idx++].data = &ipvs->sysctl_conn_reuse_mode;
tbl[idx++].data = &ipvs->sysctl_schedule_icmp;
tbl[idx++].data = &ipvs->sysctl_ignore_tunneled;
+#ifdef CONFIG_IP_VS_DEBUG
+ /* Global sysctls must be ro in non-init netns */
+ if (!net_eq(net, &init_net))
+ tbl[idx++].mode = 0444;
+#endif
ipvs->sysctl_hdr = register_net_sysctl(net, "net/ipv4/vs", tbl);
if (ipvs->sysctl_hdr == NULL) {