mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Sean Fu <fxinrong@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Austin S Hemmelgarn <ahferroin7@gmail.com>,
	Andrey Ryabinin <ryabinin.a.a@gmail.com>,
	Ulrich Obergfell <uobergfe@redhat.com>,
	Prarit Bhargava <prarit@redhat.com>,
	Eric B Munson <emunson@akamai.com>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Don Zickus <dzickus@redhat.com>,
	Heinrich Schuchardt <xypron.glpk@gmx.de>,
	David Rientjes <rientjes@google.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] kernel/sysctl.c: If "count" including the terminating byte '\0' the write system call should retrun success.
Date: Tue, 08 Sep 2015 11:19:14 -0500	[thread overview]
Message-ID: <87si6oq3y5.fsf@x220.int.ebiederm.org> (raw)
In-Reply-To: <20150908111730.6a1ecca6@gandalf.local.home> (Steven Rostedt's message of "Tue, 8 Sep 2015 11:17:30 -0400")

Steven Rostedt <rostedt@goodmis.org> writes:

> On Tue, 8 Sep 2015 11:11:38 +0800
> Sean Fu <fxinrong@gmail.com> wrote:
>
>> On Fri, Aug 28, 2015 at 11:31 AM, Sean Fu <fxinrong@gmail.com> wrote:
>> > On Thu, Aug 27, 2015 at 4:32 PM, Sean Fu <fxinrong@gmail.com> wrote:
>> >> On Thu, Aug 27, 2015 at 10:32 AM, Steven Rostedt <rostedt@goodmis.org> wrote:
>> >>> On Thu, 27 Aug 2015 08:17:29 +0800
>> >>> Sean Fu <fxinrong@gmail.com> wrote:
>> >>>> strace execute result:
>> >>>> write(3, "1\2\0", 3)                    = -1 EINVAL (Invalid argument)
>> > If vleft > 1, "1\0 2" is treated as invalid paraments and all string
>> > include '\0' will be invalid.
>> Hi All experts,
>> Could you please signed off this patch?
>
> If anyone should take this, it would be Andrew.
>
> I have no issue with the patch. Eric, you had some issue, but I don't
> see a scenario that would depend on the current behavior. That is, what
> do you think would break if we put it back to the old behavior?

This patch does not implement the old behavior.

The old code does use '\0' as a buffer terminator, and because it does
not check things closely I can see how it could accept a '\0' from
userspace and treat that as an early buffer terminator.

The patch treats '\0' as a number separator and allows things that have
never been allowed before and quite frankly is very scary as it just
invites bugs.

So I do not think we should merge the given patch.  It is just wrong.
One that simply truncates the input buffer at the first '\0' character I
think we can consider, although I am not a fan.

Steve as far as what I think would break.  I don't think the current
behavior should have broken anything and apparently it did.  I don't see
what a change that simply truncates the buffer at the first embedded
'\0' would break, but I don't know how to test that there isn't anything
that it will.  We are way past the point of reasonable expectations
being able to guide us.  4 years should have been more than enough soak
time to have been able to say that the change was good, but apparently
it was not.

My gut feel says that if we are going to change this, at this late date,
we find the one specific proc file that matters and change it just for
that one proc file, and in that change we treat '\0' as a terminator not
as a separator.  I never did see in the conversation which proc file it
is that actually matters.  The principle is that the more precise and
the more localized such a change is the less chance it has of causing a
regression of something else, and the greater the chance we can look at
a specific issue.

Eric

  reply	other threads:[~2015-09-08 16:26 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-24  8:56 Sean Fu
2015-08-24 12:27 ` Eric W. Biederman
2015-08-24 15:33   ` Sean Fu
2015-08-24 20:44     ` Andrew Morton
2015-08-24 21:24       ` Heinrich Schuchardt
2015-08-24 16:59 ` Steven Rostedt
2015-08-25  0:57   ` Sean Fu
2015-08-25  2:24     ` Eric W. Biederman
2015-08-25  7:50       ` Sean Fu
2015-08-25 14:15         ` Steven Rostedt
2015-08-25 16:44           ` Sean Fu
2015-08-25 17:33             ` Austin S Hemmelgarn
2015-08-25 19:05               ` Steven Rostedt
2015-08-26 15:48                 ` Sean Fu
2015-08-26 20:36                   ` Steven Rostedt
2015-08-27  0:17                     ` Sean Fu
2015-08-27  2:32                       ` Steven Rostedt
2015-08-27  8:32                         ` Sean Fu
2015-08-28  3:31                           ` Sean Fu
2015-09-08  3:11                             ` Sean Fu
2015-09-08 15:17                               ` Steven Rostedt
2015-09-08 16:19                                 ` Eric W. Biederman [this message]
2015-09-08 16:36                                   ` Steven Rostedt
2015-09-11  9:05                                     ` Sean Fu
2015-09-11 13:49                                       ` Steven Rostedt
2015-09-11 17:01                                       ` Eric W. Biederman
2015-09-13 12:39                                         ` Sean Fu
2015-09-13 16:44                                           ` Eric W. Biederman
2015-09-15  9:30                                             ` Sean Fu
2015-09-15 14:11                                               ` Eric W. Biederman
2015-09-13 20:05                                           ` Steven Rostedt
2015-09-15  9:10                                             ` Sean Fu
2015-09-15 13:51                                               ` Steven Rostedt
2015-08-25  3:12     ` Sean Fu
2015-08-25 20:39 ` Heinrich Schuchardt
2015-08-26  9:30   ` Sean Fu
2015-08-27  0:32   ` Sean Fu

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=87si6oq3y5.fsf@x220.int.ebiederm.org \
    --to=ebiederm@xmission.com \
    --cc=ahferroin7@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=dzickus@redhat.com \
    --cc=emunson@akamai.com \
    --cc=fxinrong@gmail.com \
    --cc=hannes@cmpxchg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=prarit@redhat.com \
    --cc=rientjes@google.com \
    --cc=rostedt@goodmis.org \
    --cc=ryabinin.a.a@gmail.com \
    --cc=tglx@linutronix.de \
    --cc=uobergfe@redhat.com \
    --cc=xypron.glpk@gmx.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome