From 19f6dfd78c77745f5a20c3912bd4412c29fead80 Mon Sep 17 00:00:00 2001 From: Pavel Emelyanov Date: Sat, 8 Dec 2007 00:11:51 -0800 Subject: [PATCH] --- yaml --- r: 78372 b: refs/heads/master c: 790a35328991b01181ff5624bdb084053b6fac54 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/core/sysctl_net_core.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index ca5fa9d7cfed..bc85316cabbd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 024626e36d75fc8c6e32d50d4c68bfc3b8df5fdf +refs/heads/master: 790a35328991b01181ff5624bdb084053b6fac54 diff --git a/trunk/net/core/sysctl_net_core.c b/trunk/net/core/sysctl_net_core.c index 57a7eadb8551..dc4cf7dda9d1 100644 --- a/trunk/net/core/sysctl_net_core.c +++ b/trunk/net/core/sysctl_net_core.c @@ -167,8 +167,13 @@ static __net_init int sysctl_core_net_init(struct net *net) if (tbl == NULL) goto err_dup; - for (tmp = tbl; tmp->procname; tmp++) - tmp->mode &= ~0222; + for (tmp = tbl; tmp->procname; tmp++) { + if (tmp->data >= (void *)&init_net && + tmp->data < (void *)(&init_net + 1)) + tmp->data += (char *)net - (char *)&init_net; + else + tmp->mode &= ~0222; + } } net->sysctl_core_hdr = register_net_sysctl_table(net,