[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20081122103717.GA8136@elf.ucw.cz>
Date: Sat, 22 Nov 2008 11:37:17 +0100
From: Pavel Machek <pavel@...e.cz>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: rpurdie@...ys.net, linux-kernel@...r.kernel.org
Subject: Re: backlight: catch invalid input
On Fri 2008-11-21 15:54:21, Andrew Morton wrote:
> On Fri, 21 Nov 2008 12:14:14 +0100
> Pavel Machek <pavel@...e.cz> wrote:
>
> >
> > Currently, echo > brightness turns brightness to zero due to
> > insufficient checking. Add a test to catch that.
> >
>
> OK. And what happens if you do
>
> echo wibble > brightness
>
> ?
That's okay, that is catched by tests already existing in there. size
is the size we decoded, count is how many bytes user wrote. If (size
!= count), we return failure.
But there's an exception for whitespace, and missing check for nothing
at all being written.
> > diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
> > index fab0bc8..5c2e23d 100644
> > --- a/drivers/video/backlight/backlight.c
> > +++ b/drivers/video/backlight/backlight.c
> > @@ -86,6 +86,8 @@ static ssize_t backlight_store_power(str
> > int power = simple_strtoul(buf, &endp, 0);
> > size_t size = endp - buf;
> >
> > + if (!size)
> > + return -EINVAL;
> > if (*endp && isspace(*endp))
> > size++;
> > if (size != count)
>
> A better fix would be to use strict_strtoul() and check its return
> value.
Aha, here's the hint :-). Ok, will do.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists