lkml.org 
[lkml]   [2008]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 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@suse.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


\
 
 \ /
  Last update: 2008-11-22 11:37    [W:0.039 / U:23.988 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site