[PATCH] media: rc: fix check on dev->min_timeout for LIRC_GET_MIN_TIMEOUT ioctl
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
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
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