* IPv4: sysctl table check failed [was: mmotm 2010-10-07-14-08 uploaded] [not found] <201010072140.o97Le69i025659@imap1.linux-foundation.org> @ 2010-10-07 22:06 ` Jiri Slaby 2010-10-07 22:22 ` Eric Dumazet 2010-10-07 22:22 ` Andrew Morton 0 siblings, 2 replies; 6+ messages in thread From: Jiri Slaby @ 2010-10-07 22:06 UTC (permalink / raw) To: linux-kernel; +Cc: akpm, mm-commits, ML netdev, David S. Miller On 10/07/2010 11:08 PM, akpm@linux-foundation.org wrote: > The mm-of-the-moment snapshot 2010-10-07-14-08 has been uploaded to Hi, I got bunch of "sysctl table check failed" below. All seem to be related to ipv4: sysctl table check failed: /net/ipv4/tcp_mem No min Pid: 1, comm: swapper Not tainted 2.6.36-rc7-mm1_64+ #1285 Call Trace: [<ffffffff8108d444>] set_fail+0xa4/0xf0 [<ffffffff8108d736>] sysctl_check_table+0x2a6/0x310 [<ffffffff8108d4eb>] sysctl_check_table+0x5b/0x310 [<ffffffff8108d4eb>] sysctl_check_table+0x5b/0x310 [<ffffffff81072204>] __register_sysctl_paths+0xf4/0x320 [<ffffffff815c1232>] ? printk+0x3c/0x42 [<ffffffff8115d3bc>] ? sysfs_add_file+0xc/0x10 [<ffffffff818b18bd>] ? sysctl_ipv4_init+0x0/0x87 [<ffffffff81072456>] register_sysctl_paths+0x26/0x30 [<ffffffff818b18fd>] sysctl_ipv4_init+0x40/0x87 [<ffffffff810002df>] do_one_initcall+0x3f/0x170 [<ffffffff81884d44>] kernel_init+0x158/0x1e2 [<ffffffff8102fb54>] kernel_thread_helper+0x4/0x10 [<ffffffff81884bec>] ? kernel_init+0x0/0x1e2 [<ffffffff8102fb50>] ? kernel_thread_helper+0x0/0x10 sysctl table check failed: /net/ipv4/tcp_mem No max Pid: 1, comm: swapper Not tainted 2.6.36-rc7-mm1_64+ #1285 Call Trace: [<ffffffff8108d444>] set_fail+0xa4/0xf0 [<ffffffff8108d4da>] sysctl_check_table+0x4a/0x310 [<ffffffff8108d4eb>] sysctl_check_table+0x5b/0x310 [<ffffffff8108d4eb>] sysctl_check_table+0x5b/0x310 [<ffffffff81072204>] __register_sysctl_paths+0xf4/0x320 [<ffffffff815c1232>] ? printk+0x3c/0x42 [<ffffffff8115d3bc>] ? sysfs_add_file+0xc/0x10 [<ffffffff818b18bd>] ? sysctl_ipv4_init+0x0/0x87 [<ffffffff81072456>] register_sysctl_paths+0x26/0x30 [<ffffffff818b18fd>] sysctl_ipv4_init+0x40/0x87 [<ffffffff810002df>] do_one_initcall+0x3f/0x170 [<ffffffff81884d44>] kernel_init+0x158/0x1e2 [<ffffffff8102fb54>] kernel_thread_helper+0x4/0x10 [<ffffffff81884bec>] ? kernel_init+0x0/0x1e2 [<ffffffff8102fb50>] ? kernel_thread_helper+0x0/0x10 sysctl table check failed: /net/ipv4/udp_mem No min Pid: 1, comm: swapper Not tainted 2.6.36-rc7-mm1_64+ #1285 Call Trace: [<ffffffff8108d444>] set_fail+0xa4/0xf0 [<ffffffff8108d736>] sysctl_check_table+0x2a6/0x310 [<ffffffff8108d4eb>] sysctl_check_table+0x5b/0x310 [<ffffffff8108d4eb>] sysctl_check_table+0x5b/0x310 [<ffffffff81072204>] __register_sysctl_paths+0xf4/0x320 [<ffffffff815c1232>] ? printk+0x3c/0x42 [<ffffffff8115d3bc>] ? sysfs_add_file+0xc/0x10 [<ffffffff818b18bd>] ? sysctl_ipv4_init+0x0/0x87 [<ffffffff81072456>] register_sysctl_paths+0x26/0x30 [<ffffffff818b18fd>] sysctl_ipv4_init+0x40/0x87 [<ffffffff810002df>] do_one_initcall+0x3f/0x170 [<ffffffff81884d44>] kernel_init+0x158/0x1e2 [<ffffffff8102fb54>] kernel_thread_helper+0x4/0x10 [<ffffffff81884bec>] ? kernel_init+0x0/0x1e2 [<ffffffff8102fb50>] ? kernel_thread_helper+0x0/0x10 sysctl table check failed: /net/ipv4/udp_mem No max Pid: 1, comm: swapper Not tainted 2.6.36-rc7-mm1_64+ #1285 Call Trace: [<ffffffff8108d444>] set_fail+0xa4/0xf0 [<ffffffff8108d4da>] sysctl_check_table+0x4a/0x310 [<ffffffff8108d4eb>] sysctl_check_table+0x5b/0x310 [<ffffffff8108d4eb>] sysctl_check_table+0x5b/0x310 [<ffffffff81072204>] __register_sysctl_paths+0xf4/0x320 [<ffffffff815c1232>] ? printk+0x3c/0x42 [<ffffffff8115d3bc>] ? sysfs_add_file+0xc/0x10 [<ffffffff818b18bd>] ? sysctl_ipv4_init+0x0/0x87 [<ffffffff81072456>] register_sysctl_paths+0x26/0x30 [<ffffffff818b18fd>] sysctl_ipv4_init+0x40/0x87 [<ffffffff810002df>] do_one_initcall+0x3f/0x170 [<ffffffff81884d44>] kernel_init+0x158/0x1e2 [<ffffffff8102fb54>] kernel_thread_helper+0x4/0x10 [<ffffffff81884bec>] ? kernel_init+0x0/0x1e2 [<ffffffff8102fb50>] ? kernel_thread_helper+0x0/0x10 regards, -- js ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: IPv4: sysctl table check failed [was: mmotm 2010-10-07-14-08 uploaded] 2010-10-07 22:06 ` IPv4: sysctl table check failed [was: mmotm 2010-10-07-14-08 uploaded] Jiri Slaby @ 2010-10-07 22:22 ` Eric Dumazet 2010-10-07 22:28 ` Andrew Morton 2010-10-07 22:22 ` Andrew Morton 1 sibling, 1 reply; 6+ messages in thread From: Eric Dumazet @ 2010-10-07 22:22 UTC (permalink / raw) To: Jiri Slaby; +Cc: linux-kernel, akpm, mm-commits, ML netdev, David S. Miller Le vendredi 08 octobre 2010 à 00:06 +0200, Jiri Slaby a écrit : > On 10/07/2010 11:08 PM, akpm@linux-foundation.org wrote: > > The mm-of-the-moment snapshot 2010-10-07-14-08 has been uploaded to > > Hi, I got bunch of "sysctl table check failed" below. All seem to be > related to ipv4: I would say, sysctl check is buggy :( min/max are optional [PATCH] sysctl: min/max bounds are optional sysctl check complains when proc_doulongvec_minmax or proc_doulongvec_ms_jiffies_minmax are used by a vector of longs (with more than one element), with no min or max value specified. This is unexpected, given we had a bug on this min/max handling :) Reported-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> --- kernel/sysctl_check.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c index 04cdcf7..10b90d8 100644 --- a/kernel/sysctl_check.c +++ b/kernel/sysctl_check.c @@ -143,15 +143,6 @@ int sysctl_check_table(struct nsproxy *namespaces, struct ctl_table *table) if (!table->maxlen) set_fail(&fail, table, "No maxlen"); } - if ((table->proc_handler == proc_doulongvec_minmax) || - (table->proc_handler == proc_doulongvec_ms_jiffies_minmax)) { - if (table->maxlen > sizeof (unsigned long)) { - if (!table->extra1) - set_fail(&fail, table, "No min"); - if (!table->extra2) - set_fail(&fail, table, "No max"); - } - } #ifdef CONFIG_PROC_SYSCTL if (table->procname && !table->proc_handler) set_fail(&fail, table, "No proc_handler"); ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: IPv4: sysctl table check failed [was: mmotm 2010-10-07-14-08 uploaded] 2010-10-07 22:22 ` Eric Dumazet @ 2010-10-07 22:28 ` Andrew Morton 2010-10-08 0:54 ` Eric W. Biederman 2010-10-08 16:30 ` Américo Wang 0 siblings, 2 replies; 6+ messages in thread From: Andrew Morton @ 2010-10-07 22:28 UTC (permalink / raw) To: Eric Dumazet Cc: Jiri Slaby, linux-kernel, mm-commits, ML netdev, David S. Miller, Eric W. Biederman On Fri, 08 Oct 2010 00:22:15 +0200 Eric Dumazet <eric.dumazet@gmail.com> wrote: > Le vendredi 08 octobre 2010 __ 00:06 +0200, Jiri Slaby a __crit : > > On 10/07/2010 11:08 PM, akpm@linux-foundation.org wrote: > > > The mm-of-the-moment snapshot 2010-10-07-14-08 has been uploaded to > > > > Hi, I got bunch of "sysctl table check failed" below. All seem to be > > related to ipv4: > > I would say, sysctl check is buggy :( > > min/max are optional > > [PATCH] sysctl: min/max bounds are optional > > sysctl check complains when proc_doulongvec_minmax or > proc_doulongvec_ms_jiffies_minmax are used by a vector of longs (with > more than one element), with no min or max value specified. > > This is unexpected, given we had a bug on this min/max handling :) > > Reported-by: Jiri Slaby <jirislaby@gmail.com> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> > --- > kernel/sysctl_check.c | 9 --------- > 1 file changed, 9 deletions(-) > > diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c > index 04cdcf7..10b90d8 100644 > --- a/kernel/sysctl_check.c > +++ b/kernel/sysctl_check.c > @@ -143,15 +143,6 @@ int sysctl_check_table(struct nsproxy *namespaces, struct ctl_table *table) > if (!table->maxlen) > set_fail(&fail, table, "No maxlen"); > } > - if ((table->proc_handler == proc_doulongvec_minmax) || > - (table->proc_handler == proc_doulongvec_ms_jiffies_minmax)) { > - if (table->maxlen > sizeof (unsigned long)) { > - if (!table->extra1) > - set_fail(&fail, table, "No min"); > - if (!table->extra2) > - set_fail(&fail, table, "No max"); > - } > - } > #ifdef CONFIG_PROC_SYSCTL > if (table->procname && !table->proc_handler) > set_fail(&fail, table, "No proc_handler"); That will probably fix it ;) net-avoid-limits-overflow.patch is dependent on this patch. Unless Eric B squeaks I'll plan on sending this patch in for 2.6.37. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: IPv4: sysctl table check failed [was: mmotm 2010-10-07-14-08 uploaded] 2010-10-07 22:28 ` Andrew Morton @ 2010-10-08 0:54 ` Eric W. Biederman 2010-10-08 16:30 ` Américo Wang 1 sibling, 0 replies; 6+ messages in thread From: Eric W. Biederman @ 2010-10-08 0:54 UTC (permalink / raw) To: Andrew Morton Cc: Eric Dumazet, Jiri Slaby, linux-kernel, mm-commits, ML netdev, David S. Miller Andrew Morton <akpm@linux-foundation.org> writes: > On Fri, 08 Oct 2010 00:22:15 +0200 > Eric Dumazet <eric.dumazet@gmail.com> wrote: > >> Le vendredi 08 octobre 2010 __ 00:06 +0200, Jiri Slaby a __crit : >> > On 10/07/2010 11:08 PM, akpm@linux-foundation.org wrote: >> > > The mm-of-the-moment snapshot 2010-10-07-14-08 has been uploaded to >> > >> > Hi, I got bunch of "sysctl table check failed" below. All seem to be >> > related to ipv4: >> >> I would say, sysctl check is buggy :( >> >> min/max are optional >> >> [PATCH] sysctl: min/max bounds are optional >> >> sysctl check complains when proc_doulongvec_minmax or >> proc_doulongvec_ms_jiffies_minmax are used by a vector of longs (with >> more than one element), with no min or max value specified. >> >> This is unexpected, given we had a bug on this min/max handling :) >> >> Reported-by: Jiri Slaby <jirislaby@gmail.com> >> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> >> --- >> kernel/sysctl_check.c | 9 --------- >> 1 file changed, 9 deletions(-) >> >> diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c >> index 04cdcf7..10b90d8 100644 >> --- a/kernel/sysctl_check.c >> +++ b/kernel/sysctl_check.c >> @@ -143,15 +143,6 @@ int sysctl_check_table(struct nsproxy *namespaces, struct ctl_table *table) >> if (!table->maxlen) >> set_fail(&fail, table, "No maxlen"); >> } >> - if ((table->proc_handler == proc_doulongvec_minmax) || >> - (table->proc_handler == proc_doulongvec_ms_jiffies_minmax)) { >> - if (table->maxlen > sizeof (unsigned long)) { >> - if (!table->extra1) >> - set_fail(&fail, table, "No min"); >> - if (!table->extra2) >> - set_fail(&fail, table, "No max"); >> - } >> - } >> #ifdef CONFIG_PROC_SYSCTL >> if (table->procname && !table->proc_handler) >> set_fail(&fail, table, "No proc_handler"); > > That will probably fix it ;) > > net-avoid-limits-overflow.patch is dependent on this patch. Unless > Eric B squeaks I'll plan on sending this patch in for 2.6.37. Oh. I see. I actually had a sanity check for the case that was failing. I probably spotted the buggy code and wanted to see if there was anything that cared. So sysctl_check was perfectly correct until the bug was removed from proc_doulongvec_minmax. Which also means we have been auditing the kernel for quite a while to make certain that it is safe not to increment min and max. Eric ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: IPv4: sysctl table check failed [was: mmotm 2010-10-07-14-08 uploaded] 2010-10-07 22:28 ` Andrew Morton 2010-10-08 0:54 ` Eric W. Biederman @ 2010-10-08 16:30 ` Américo Wang 1 sibling, 0 replies; 6+ messages in thread From: Américo Wang @ 2010-10-08 16:30 UTC (permalink / raw) To: Andrew Morton Cc: Eric Dumazet, Jiri Slaby, linux-kernel, mm-commits, ML netdev, David S. Miller, Eric W. Biederman On Thu, Oct 07, 2010 at 03:28:06PM -0700, Andrew Morton wrote: >On Fri, 08 Oct 2010 00:22:15 +0200 >Eric Dumazet <eric.dumazet@gmail.com> wrote: > >> Le vendredi 08 octobre 2010 __ 00:06 +0200, Jiri Slaby a __crit : >> > On 10/07/2010 11:08 PM, akpm@linux-foundation.org wrote: >> > > The mm-of-the-moment snapshot 2010-10-07-14-08 has been uploaded to >> > >> > Hi, I got bunch of "sysctl table check failed" below. All seem to be >> > related to ipv4: >> >> I would say, sysctl check is buggy :( >> >> min/max are optional >> >> [PATCH] sysctl: min/max bounds are optional >> >> sysctl check complains when proc_doulongvec_minmax or >> proc_doulongvec_ms_jiffies_minmax are used by a vector of longs (with >> more than one element), with no min or max value specified. >> >> This is unexpected, given we had a bug on this min/max handling :) >> >> Reported-by: Jiri Slaby <jirislaby@gmail.com> >> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> >> --- >> kernel/sysctl_check.c | 9 --------- >> 1 file changed, 9 deletions(-) >> >> diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c >> index 04cdcf7..10b90d8 100644 >> --- a/kernel/sysctl_check.c >> +++ b/kernel/sysctl_check.c >> @@ -143,15 +143,6 @@ int sysctl_check_table(struct nsproxy *namespaces, struct ctl_table *table) >> if (!table->maxlen) >> set_fail(&fail, table, "No maxlen"); >> } >> - if ((table->proc_handler == proc_doulongvec_minmax) || >> - (table->proc_handler == proc_doulongvec_ms_jiffies_minmax)) { >> - if (table->maxlen > sizeof (unsigned long)) { >> - if (!table->extra1) >> - set_fail(&fail, table, "No min"); >> - if (!table->extra2) >> - set_fail(&fail, table, "No max"); >> - } >> - } >> #ifdef CONFIG_PROC_SYSCTL >> if (table->procname && !table->proc_handler) >> set_fail(&fail, table, "No proc_handler"); > >That will probably fix it ;) Yeah, it looks good for me too, Acked-by: WANG Cong <xiyou.wangcong@gmail.com> > >net-avoid-limits-overflow.patch is dependent on this patch. Unless >Eric B squeaks I'll plan on sending this patch in for 2.6.37. > Eirc B reminded me we should check the code in sysctl_check.c, but I forgot. The patch from Eric D is exactly what we need here. Thanks. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: IPv4: sysctl table check failed [was: mmotm 2010-10-07-14-08 uploaded] 2010-10-07 22:06 ` IPv4: sysctl table check failed [was: mmotm 2010-10-07-14-08 uploaded] Jiri Slaby 2010-10-07 22:22 ` Eric Dumazet @ 2010-10-07 22:22 ` Andrew Morton 1 sibling, 0 replies; 6+ messages in thread From: Andrew Morton @ 2010-10-07 22:22 UTC (permalink / raw) To: Jiri Slaby Cc: linux-kernel, mm-commits, ML netdev, David S. Miller, Eric Dumazet, Eric W. Biederman On Fri, 08 Oct 2010 00:06:49 +0200 Jiri Slaby <jirislaby@gmail.com> wrote: > On 10/07/2010 11:08 PM, akpm@linux-foundation.org wrote: > > The mm-of-the-moment snapshot 2010-10-07-14-08 has been uploaded to > > Hi, I got bunch of "sysctl table check failed" below. All seem to be > related to ipv4: > > sysctl table check failed: /net/ipv4/tcp_mem No min > Pid: 1, comm: swapper Not tainted 2.6.36-rc7-mm1_64+ #1285 > Call Trace: > [<ffffffff8108d444>] set_fail+0xa4/0xf0 > [<ffffffff8108d736>] sysctl_check_table+0x2a6/0x310 > [<ffffffff8108d4eb>] sysctl_check_table+0x5b/0x310 > [<ffffffff8108d4eb>] sysctl_check_table+0x5b/0x310 > [<ffffffff81072204>] __register_sysctl_paths+0xf4/0x320 > [<ffffffff815c1232>] ? printk+0x3c/0x42 > [<ffffffff8115d3bc>] ? sysfs_add_file+0xc/0x10 > [<ffffffff818b18bd>] ? sysctl_ipv4_init+0x0/0x87 > [<ffffffff81072456>] register_sysctl_paths+0x26/0x30 > [<ffffffff818b18fd>] sysctl_ipv4_init+0x40/0x87 > [<ffffffff810002df>] do_one_initcall+0x3f/0x170 > [<ffffffff81884d44>] kernel_init+0x158/0x1e2 > [<ffffffff8102fb54>] kernel_thread_helper+0x4/0x10 > [<ffffffff81884bec>] ? kernel_init+0x0/0x1e2 > [<ffffffff8102fb50>] ? kernel_thread_helper+0x0/0x10 OK, thanks. Eric D's net-avoid-limits-overflow.patch switched tcp_mem and udp_mem from proc_dointvec() to proc_doulongvec_minmax(). And sysctl_check_table() checks `min' and `max' for proc_doulongvec_minmax() but not for proc_dointvec(). I'm not sure which Eric to blame ;) .min and .max are optional, so perhaps the check is wrong? ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-10-08 16:28 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <201010072140.o97Le69i025659@imap1.linux-foundation.org> 2010-10-07 22:06 ` IPv4: sysctl table check failed [was: mmotm 2010-10-07-14-08 uploaded] Jiri Slaby 2010-10-07 22:22 ` Eric Dumazet 2010-10-07 22:28 ` Andrew Morton 2010-10-08 0:54 ` Eric W. Biederman 2010-10-08 16:30 ` Américo Wang 2010-10-07 22:22 ` Andrew Morton
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).