From: Andrew Morton <akpm@linux-foundation.org>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>,
"Américo Wang" <xiyou.wangcong@gmail.com>,
"Robin Holt" <holt@sgi.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
"Willy Tarreau" <w@1wt.eu>,
"David S. Miller" <davem@davemloft.net>,
netdev@vger.kernel.org, "James Morris" <jmorris@namei.org>,
"Pekka Savola (ipv6)" <pekkas@netcore.fi>,
"Patrick McHardy" <kaber@trash.net>,
"Alexey Kuznetsov" <kuznet@ms2.inr.ac.ru>
Subject: Re: [PATCH] sysctl: fix min/max handling in __do_proc_doulongvec_minmax()
Date: Thu, 7 Oct 2010 12:18:40 -0700 [thread overview]
Message-ID: <20101007121840.ca49e2ac.akpm@linux-foundation.org> (raw)
In-Reply-To: <1286470743.2912.276.camel@edumazet-laptop>
On Thu, 07 Oct 2010 18:59:03 +0200
Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le jeudi 07 octobre 2010 __ 09:37 -0700, Eric W. Biederman a __crit :
>
> > The difference between long handling and int handling is a
> > usability issue. I don't expect we will be exporting new
> > vectors via sysctl, so the conversion of a handful of vectors
> > from int to long is where this is most likely to be used.
> >
> > I skimmed through all of what I presume are the current users
> > aka linux-2.6.36-rcX and there don't appear to be any users
> > of proc_dounlongvec_minmax that use it's vector properties there.
> >
> > Which doubly tells me that incrementing the min and max pointers
> > is not what we want to do.
> >
>
> Thats fine by me, thanks Eric.
>
> Andrew, please remove previous patch from your tree and replace it by
> following one :
>
> [PATCH v2] sysctl: fix min/max handling in __do_proc_doulongvec_minmax()
>
> When proc_doulongvec_minmax() is used with an array of longs,
> and no min/max check requested (.extra1 or .extra2 being NULL), we
> dereference a NULL pointer for the second element of the array.
>
> Noticed while doing some changes in network stack for the "16TB problem"
>
> Fix is to not change min & max pointers in
> __do_proc_doulongvec_minmax(), so that all elements of the vector share
> an unique min/max limit, like proc_dointvec_minmax().
>
> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
> ---
> kernel/sysctl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/sysctl.c b/kernel/sysctl.c
> index f88552c..8e45451 100644
> --- a/kernel/sysctl.c
> +++ b/kernel/sysctl.c
> @@ -2485,7 +2485,7 @@ static int __do_proc_doulongvec_minmax(void *data, struct ctl_table *table, int
> kbuf[left] = 0;
> }
>
> - for (; left && vleft--; i++, min++, max++, first=0) {
> + for (; left && vleft--; i++, first=0) {
> unsigned long val;
>
> if (write) {
Did we check to see whether any present callers are passing in pointers
to arrays of min/max values?
I wonder if there's any documentation for this interface which just
became wrong.
next prev parent reply other threads:[~2010-10-07 19:20 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-02 13:17 [PATCH] sysctl: fix min/max handling in __do_proc_doulongvec_minmax() Eric Dumazet
2010-10-04 3:09 ` Américo Wang
2010-10-04 8:59 ` Robin Holt
2010-10-04 9:04 ` Eric Dumazet
2010-10-04 9:34 ` Américo Wang
2010-10-04 10:10 ` Eric Dumazet
2010-10-04 10:35 ` Américo Wang
2010-10-04 10:38 ` Eric Dumazet
2010-10-05 13:01 ` Américo Wang
2010-10-07 7:18 ` Américo Wang
2010-10-07 9:25 ` Américo Wang
2010-10-07 9:51 ` Eric Dumazet
2010-10-07 16:37 ` Eric W. Biederman
2010-10-07 16:59 ` Eric Dumazet
2010-10-07 19:18 ` Andrew Morton [this message]
2010-10-07 19:38 ` Eric W. Biederman
2010-10-08 16:22 ` Américo Wang
2010-10-08 16:13 ` Américo Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101007121840.ca49e2ac.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=ebiederm@xmission.com \
--cc=eric.dumazet@gmail.com \
--cc=holt@sgi.com \
--cc=jmorris@namei.org \
--cc=kaber@trash.net \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pekkas@netcore.fi \
--cc=w@1wt.eu \
--cc=xiyou.wangcong@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.