media: tda18271: add missing result checking of tda18271_lookup_map()
authorKarina Yankevich <k.yankevich@omp.ru>
Fri, 16 Feb 2024 16:01:10 +0000 (19:01 +0300)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Sat, 12 Oct 2024 14:28:24 +0000 (16:28 +0200)
tda18271_lookup_map() may return negative error code, but
tda18271c2_rf_tracking_filters_correction() doesn't check it
as the other callers.

Found by Linux Verification Center (linuxtesting.org) with the Svace static
analysis tool.

Signed-off-by: Karina Yankevich <k.yankevich@omp.ru>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/tuners/tda18271-fe.c

index a7e721baaa997f24e20e152dff8c5494fee839e5..3a3309bc01518e2e073e8328697b8df8aaa3f4e7 100644 (file)
@@ -279,7 +279,9 @@ static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe,
        if (approx > 255)
                approx = 255;
 
-       tda18271_lookup_map(fe, RF_CAL_DC_OVER_DT, &freq, &dc_over_dt);
+       ret = tda18271_lookup_map(fe, RF_CAL_DC_OVER_DT, &freq, &dc_over_dt);
+       if (tda_fail(ret))
+               goto fail;
 
        /* calculate temperature compensation */
        rfcal_comp = dc_over_dt * (s32)(tm_current - priv->tm_rfcal) / 1000;