From: Mauro Carvalho Chehab Date: Wed, 1 Nov 2017 21:05:54 +0000 (-0400) Subject: media: mxl111sf: improve error handling logic X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=ad7b57d58d16666f607914bf9ff6950e1c5532a4;p=openwrt%2Fstaging%2Fblogic.git media: mxl111sf: improve error handling logic As reported by smatch: drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c:485 mxl111sf_demod_read_signal_strength() error: uninitialized symbol 'modulation'. The mxl111sf_demod_read_signal_strength() just ignores if something gets wrong while reading snr or modulation. Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c b/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c index f0ed37da73d4..221cf46b4140 100644 --- a/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c +++ b/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c @@ -477,10 +477,15 @@ static int mxl111sf_demod_read_signal_strength(struct dvb_frontend *fe, { struct mxl111sf_demod_state *state = fe->demodulator_priv; enum fe_modulation modulation; + int ret; u16 snr; - mxl111sf_demod_calc_snr(state, &snr); - mxl1x1sf_demod_get_tps_modulation(state, &modulation); + ret = mxl111sf_demod_calc_snr(state, &snr); + if (ret < 0) + return ret; + ret = mxl1x1sf_demod_get_tps_modulation(state, &modulation); + if (ret < 0) + return ret; switch (modulation) { case QPSK: