New: /proc/sys/net/ipv6 has two neigh folders
Subsystems (2)
(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).
Quoted 65 lines · On Wed, 16 Mar 2011 22:06:34 GMT [email protected] wrote:
https://bugzilla.kernel.org/show_bug.cgi?id=31232
Summary: /proc/sys/net/ipv6 has two neigh folders Product: Networking Version: 2.5 Kernel Version: 2.6.38 Platform: All OS/Version: Linux Tree: Mainline Status: NEW Severity: low Priority: P1 Component: IPV6 AssignedTo: [email protected] ReportedBy: [email protected] Regression: NoI noticed when looking for other things that there are two neigh folders in
/proc/sys/net/ipv6Reverting this commit removes the extra neigh folder:
http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=commitdiff;h=bf36076a67db6d7423d09d861a072337866f0dd9I don't know how to fix this.
I tried removing the ',' on the row '.child = empty,' (looking at the other rows it did seem like a typo to me).This did not change anything that I could see though.
Here is the commit I believe introduced the bug:
net/ipv6/sysctl_net_ipv6.c +8
-1@@ -15,6 +15,8 @@#include <net/addrconf.h> #include <net/inet_frag.h> +static struct ctl_table empty[1 ]; +static ctl_table ipv6_table_template[] = { { .procname ="route" ,@@ -35,6 +37,12 @@ static ctl_table ipv6_table_template[] = { .mode = 0644, .proc_handler = proc_dointvec }, + { + .procname = "neigh", + .maxlen = 0, + .mode = 0555, + .child = empty, + }, { } };@@ -152,7 +160,6 @@ static struct ctl_table_header *ip6_base;int ipv6_static_sysctl_register (void ) { -static struct ctl_table empty[1 ]; ip6_base =register_sysctl_paths (net_ipv6_ctl_path, empty);if (ip6_base ==NULL )return -ENOMEM ;
Quoted 37 lines · Andrew Morton
(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).
Quoted 31 lines · On Wed, 16 Mar 2011 22:06:34 GMT [email protected] wrote:
https://bugzilla.kernel.org/show_bug.cgi?id=31232
Summary: /proc/sys/net/ipv6 has two neigh folders Product: Networking Version: 2.5 Kernel Version: 2.6.38 Platform: All OS/Version: Linux Tree: Mainline Status: NEW Severity: low Priority: P1 Component: IPV6 AssignedTo: [email protected] ReportedBy: [email protected] Regression: NoI noticed when looking for other things that there are two neigh folders in
/proc/sys/net/ipv6Reverting this commit removes the extra neigh folder:
http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=commitdiff;h=bf36076a67db6d7423d09d861a072337866f0dd9I don't know how to fix this.
I tried removing the ',' on the row '.child = empty,' (looking at the other rows it did seem like a typo to me).This did not change anything that I could see though.
Here is the commit I believe introduced the bug:
Interesting.
This is definitely a bug. I suspect it may be another symptom of the bug I was trying to fix. Something somewhere is messed up with the neigh directory.
That extra neigh entry should serve as a mount point for any later neigh entries that are registered, so the change should be fine.
I will see if I can make the time to look into this, as this new symptom looks as nasty as the use after free problems I was seeing earlier.
Eric
Quoted 33 lines
Quoted 33 lines
net/ipv6/sysctl_net_ipv6.c +8
-1@@ -15,6 +15,8 @@#include <net/addrconf.h> #include <net/inet_frag.h> +static struct ctl_table empty[1 ]; +static ctl_table ipv6_table_template[] = { { .procname ="route" ,@@ -35,6 +37,12 @@ static ctl_table ipv6_table_template[] = { .mode = 0644, .proc_handler = proc_dointvec }, + { + .procname = "neigh", + .maxlen = 0, + .mode = 0555, + .child = empty, + }, { } };@@ -152,7 +160,6 @@ static struct ctl_table_header *ip6_base;int ipv6_static_sysctl_register (void ) { -static struct ctl_table empty[1 ]; ip6_base =register_sysctl_paths (net_ipv6_ctl_path, empty);if (ip6_base ==NULL )return -ENOMEM ;