[PATCH] media: rc: fix check on dev->min_timeout for LIRC_GET_MIN_TIMEOUT ioctl

2020-09-15 Thread Colin King
From: Colin Ian King 

Currently the LIRC_GET_MIN_TIMEOUT is checking for a null dev->max_timeout
and then accessing dev->min_timeout, hence we may have a potential null
pointer dereference issue.  This looks like a cut-n-paste typo, fix it
by checking on dev->min_timeout before accessing it.

Addresses-Coverity: ("Copy-paste error")
Fixes: e589333f346b ("V4L/DVB: IR: extend interfaces to support more device 
settings")
Signed-off-by: Colin Ian King 
---
 drivers/media/rc/lirc_dev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c
index 220363b9a868..d230c21e1d31 100644
--- a/drivers/media/rc/lirc_dev.c
+++ b/drivers/media/rc/lirc_dev.c
@@ -533,7 +533,7 @@ static long lirc_ioctl(struct file *file, unsigned int cmd, 
unsigned long arg)
 
/* Generic timeout support */
case LIRC_GET_MIN_TIMEOUT:
-   if (!dev->max_timeout)
+   if (!dev->min_timeout)
ret = -ENOTTY;
else
val = dev->min_timeout;
-- 
2.27.0



Re: [PATCH] media: rc: fix check on dev->min_timeout for LIRC_GET_MIN_TIMEOUT ioctl

2020-09-15 Thread Colin Ian King
On 15/09/2020 18:12, Sean Young wrote:
> On Tue, Sep 15, 2020 at 04:36:08PM +0100, Colin King wrote:
>> From: Colin Ian King 
>>
>> Currently the LIRC_GET_MIN_TIMEOUT is checking for a null dev->max_timeout
>> and then accessing dev->min_timeout, hence we may have a potential null
>> pointer dereference issue.  This looks like a cut-n-paste typo, fix it
>> by checking on dev->min_timeout before accessing it.
> 
> max_timeout and min_timeout are both u32, not pointers. So, the commit 
> message is wrong: there is no null pointer dereference issue.
> 
> Every driver which has max_timeout also has min_timeout set (I've checked
> for this). So technically this is not wrong, but maybe it looks wrong?

Oops. I totally misread the analysis report. My bad.

> 
> Thanks,
> 
> Sean
>>
>> Addresses-Coverity: ("Copy-paste error")
>> Fixes: e589333f346b ("V4L/DVB: IR: extend interfaces to support more device 
>> settings")
>> Signed-off-by: Colin Ian King 
>> ---
>>  drivers/media/rc/lirc_dev.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c
>> index 220363b9a868..d230c21e1d31 100644
>> --- a/drivers/media/rc/lirc_dev.c
>> +++ b/drivers/media/rc/lirc_dev.c
>> @@ -533,7 +533,7 @@ static long lirc_ioctl(struct file *file, unsigned int 
>> cmd, unsigned long arg)
>>  
>>  /* Generic timeout support */
>>  case LIRC_GET_MIN_TIMEOUT:
>> -if (!dev->max_timeout)
>> +if (!dev->min_timeout)
>>  ret = -ENOTTY;
>>  else
>>  val = dev->min_timeout;
>> -- 
>> 2.27.0



Re: [PATCH] media: rc: fix check on dev->min_timeout for LIRC_GET_MIN_TIMEOUT ioctl

2020-09-15 Thread Sean Young
On Tue, Sep 15, 2020 at 04:36:08PM +0100, Colin King wrote:
> From: Colin Ian King 
> 
> Currently the LIRC_GET_MIN_TIMEOUT is checking for a null dev->max_timeout
> and then accessing dev->min_timeout, hence we may have a potential null
> pointer dereference issue.  This looks like a cut-n-paste typo, fix it
> by checking on dev->min_timeout before accessing it.

max_timeout and min_timeout are both u32, not pointers. So, the commit 
message is wrong: there is no null pointer dereference issue.

Every driver which has max_timeout also has min_timeout set (I've checked
for this). So technically this is not wrong, but maybe it looks wrong?

Thanks,

Sean
> 
> Addresses-Coverity: ("Copy-paste error")
> Fixes: e589333f346b ("V4L/DVB: IR: extend interfaces to support more device 
> settings")
> Signed-off-by: Colin Ian King 
> ---
>  drivers/media/rc/lirc_dev.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c
> index 220363b9a868..d230c21e1d31 100644
> --- a/drivers/media/rc/lirc_dev.c
> +++ b/drivers/media/rc/lirc_dev.c
> @@ -533,7 +533,7 @@ static long lirc_ioctl(struct file *file, unsigned int 
> cmd, unsigned long arg)
>  
>   /* Generic timeout support */
>   case LIRC_GET_MIN_TIMEOUT:
> - if (!dev->max_timeout)
> + if (!dev->min_timeout)
>   ret = -ENOTTY;
>   else
>   val = dev->min_timeout;
> -- 
> 2.27.0