Am Wed, 1 Nov 2017 17:05:39 -0400 schrieb Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx>: > As smatch warned: > drivers/media/dvb-core/dvb_frontend.c:2468 > dvb_frontend_handle_ioctl() error: uninitialized symbol 'err'. > > The ioctl handler actually got a regression here: before changeset > d73dcf0cdb95 ("media: dvb_frontend: cleanup ioctl handling logic"), > the code used to return -EOPNOTSUPP if an ioctl handler was not > implemented on a driver. After the change, it may return a random > value. > > Fixes: d73dcf0cdb95 ("media: dvb_frontend: cleanup ioctl handling > logic") # For 4.14 > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx> > --- > drivers/media/dvb-core/dvb_frontend.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/dvb-core/dvb_frontend.c > b/drivers/media/dvb-core/dvb_frontend.c index > daaf969719e4..bcf0cbcbf7b2 100644 --- > a/drivers/media/dvb-core/dvb_frontend.c +++ > b/drivers/media/dvb-core/dvb_frontend.c @@ -2109,7 +2109,7 @@ static > int dvb_frontend_handle_ioctl(struct file *file, struct dvb_frontend > *fe = dvbdev->priv; struct dvb_frontend_private *fepriv = > fe->frontend_priv; struct dtv_frontend_properties *c = > &fe->dtv_property_cache; > - int i, err; > + int i, err = -EOPNOTSUPP; > > dev_dbg(fe->dvb->device, "%s:\n", __func__); > > @@ -2144,6 +2144,7 @@ static int dvb_frontend_handle_ioctl(struct > file *file, } > } > kfree(tvp); > + err = 0; > break; > } > case FE_GET_PROPERTY: { > @@ -2195,6 +2196,7 @@ static int dvb_frontend_handle_ioctl(struct > file *file, return -EFAULT; > } > kfree(tvp); > + err = 0; > break; > } > Tested-by: Daniel Scheller <d.scheller@xxxxxxx> Fixes false reporting of successful DVBv3 signal stats inquiry when they're not available, causing wrong assumptions and values in userspace apps. Best regards, Daniel Scheller -- https://github.com/herrnst