diff mbox

Input: ff-core - silence an underflow warning

Message ID 20150922132643.GA5751@mwanda (mailing list archive)
State Accepted
Headers show

Commit Message

Dan Carpenter Sept. 22, 2015, 1:26 p.m. UTC
My static checker complains that "value" comes from the user in
evdev_do_ioctl() and we check that it's not too large here but we don't
check that it's negative.  It's harmless because the ->set_gain() and
->set_autocenter() functions truncate it to a valid u16 value, but we
may as well fix it just to make the static checker happy.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Dmitry Torokhov Sept. 29, 2015, 12:28 a.m. UTC | #1
On Tue, Sep 22, 2015 at 04:26:43PM +0300, Dan Carpenter wrote:
> My static checker complains that "value" comes from the user in
> evdev_do_ioctl() and we check that it's not too large here but we don't
> check that it's negative.  It's harmless because the ->set_gain() and
> ->set_autocenter() functions truncate it to a valid u16 value, but we
> may as well fix it just to make the static checker happy.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> diff --git a/drivers/input/ff-core.c b/drivers/input/ff-core.c
> index c642082..6a94c5f 100644
> --- a/drivers/input/ff-core.c
> +++ b/drivers/input/ff-core.c
> @@ -273,14 +273,14 @@ int input_ff_event(struct input_dev *dev, unsigned int type,
>  
>  	switch (code) {
>  	case FF_GAIN:
> -		if (!test_bit(FF_GAIN, dev->ffbit) || value > 0xffff)
> +		if (!test_bit(FF_GAIN, dev->ffbit) || value > 0xffffUL)
>  			break;
>  
>  		ff->set_gain(dev, value);
>  		break;
>  
>  	case FF_AUTOCENTER:
> -		if (!test_bit(FF_AUTOCENTER, dev->ffbit) || value > 0xffff)
> +		if (!test_bit(FF_AUTOCENTER, dev->ffbit) || value > 0xffffUL)

Why UL and not U?

Thanks.

>  			break;
>  
>  		ff->set_autocenter(dev, value);
Dan Carpenter Sept. 29, 2015, 1:12 p.m. UTC | #2
On Mon, Sep 28, 2015 at 05:28:30PM -0700, Dmitry Torokhov wrote:
> On Tue, Sep 22, 2015 at 04:26:43PM +0300, Dan Carpenter wrote:
> > My static checker complains that "value" comes from the user in
> > evdev_do_ioctl() and we check that it's not too large here but we don't
> > check that it's negative.  It's harmless because the ->set_gain() and
> > ->set_autocenter() functions truncate it to a valid u16 value, but we
> > may as well fix it just to make the static checker happy.
> > 
> > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> > 
> > diff --git a/drivers/input/ff-core.c b/drivers/input/ff-core.c
> > index c642082..6a94c5f 100644
> > --- a/drivers/input/ff-core.c
> > +++ b/drivers/input/ff-core.c
> > @@ -273,14 +273,14 @@ int input_ff_event(struct input_dev *dev, unsigned int type,
> >  
> >  	switch (code) {
> >  	case FF_GAIN:
> > -		if (!test_bit(FF_GAIN, dev->ffbit) || value > 0xffff)
> > +		if (!test_bit(FF_GAIN, dev->ffbit) || value > 0xffffUL)
> >  			break;
> >  
> >  		ff->set_gain(dev, value);
> >  		break;
> >  
> >  	case FF_AUTOCENTER:
> > -		if (!test_bit(FF_AUTOCENTER, dev->ffbit) || value > 0xffff)
> > +		if (!test_bit(FF_AUTOCENTER, dev->ffbit) || value > 0xffffUL)
> 
> Why UL and not U?
> 

You're right.  That could just be U.  I'll resend.

regards,
dan carpenter

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dmitry Torokhov Sept. 29, 2015, 11:03 p.m. UTC | #3
On Tue, Sep 29, 2015 at 04:12:58PM +0300, Dan Carpenter wrote:
> On Mon, Sep 28, 2015 at 05:28:30PM -0700, Dmitry Torokhov wrote:
> > On Tue, Sep 22, 2015 at 04:26:43PM +0300, Dan Carpenter wrote:
> > > My static checker complains that "value" comes from the user in
> > > evdev_do_ioctl() and we check that it's not too large here but we don't
> > > check that it's negative.  It's harmless because the ->set_gain() and
> > > ->set_autocenter() functions truncate it to a valid u16 value, but we
> > > may as well fix it just to make the static checker happy.
> > > 
> > > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> > > 
> > > diff --git a/drivers/input/ff-core.c b/drivers/input/ff-core.c
> > > index c642082..6a94c5f 100644
> > > --- a/drivers/input/ff-core.c
> > > +++ b/drivers/input/ff-core.c
> > > @@ -273,14 +273,14 @@ int input_ff_event(struct input_dev *dev, unsigned int type,
> > >  
> > >  	switch (code) {
> > >  	case FF_GAIN:
> > > -		if (!test_bit(FF_GAIN, dev->ffbit) || value > 0xffff)
> > > +		if (!test_bit(FF_GAIN, dev->ffbit) || value > 0xffffUL)
> > >  			break;
> > >  
> > >  		ff->set_gain(dev, value);
> > >  		break;
> > >  
> > >  	case FF_AUTOCENTER:
> > > -		if (!test_bit(FF_AUTOCENTER, dev->ffbit) || value > 0xffff)
> > > +		if (!test_bit(FF_AUTOCENTER, dev->ffbit) || value > 0xffffUL)
> > 
> > Why UL and not U?
> > 
> 
> You're right.  That could just be U.  I'll resend.

That's fine, I'll adjust on my side.

Thanks.
Dan Carpenter Oct. 2, 2015, 6:07 a.m. UTC | #4
On Tue, Sep 29, 2015 at 04:03:15PM -0700, Dmitry Torokhov wrote:
> That's fine, I'll adjust on my side.

Thanks!

regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/input/ff-core.c b/drivers/input/ff-core.c
index c642082..6a94c5f 100644
--- a/drivers/input/ff-core.c
+++ b/drivers/input/ff-core.c
@@ -273,14 +273,14 @@  int input_ff_event(struct input_dev *dev, unsigned int type,
 
 	switch (code) {
 	case FF_GAIN:
-		if (!test_bit(FF_GAIN, dev->ffbit) || value > 0xffff)
+		if (!test_bit(FF_GAIN, dev->ffbit) || value > 0xffffUL)
 			break;
 
 		ff->set_gain(dev, value);
 		break;
 
 	case FF_AUTOCENTER:
-		if (!test_bit(FF_AUTOCENTER, dev->ffbit) || value > 0xffff)
+		if (!test_bit(FF_AUTOCENTER, dev->ffbit) || value > 0xffffUL)
 			break;
 
 		ff->set_autocenter(dev, value);