[lvc-project] [PATCH] [media] tda18271: add missing result checking of tda18271_lookup_map()

Fedor Pchelkin pchelkin at ispras.ru
Fri Mar 15 14:40:28 MSK 2024


On Fri, 16. Feb 19:01, Karina Yankevich wrote:
> 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 at omp.ru>

Добрый день!

Если патч исправляет ошибку в коде и известен коммит, ее внесший, то лучше
снабжать патч тегом `Fixes:`. Это поможет определить, для каких стабильных
веток этот патч актуален.

В данном случае, полагаю, проверка отсутствует с давнего коммита
255b5113b4ed ("V4L/DVB (6960): tda18271: add support for NXP TDA18271HD/C2").

С патчем согласен. Как минимум, если указанная функция возвращает ошибку,
то значение dc_over_dt не определено.

Добавлено в ветки linux-5.10-lvc-next и linux-6.1-lvc-next.

В публичной linux-5.10-lvc [1] появится при выходе ближайшего релиза.

Спасибо!

[1]: https://git.linuxtesting.ru/pub/scm/linux/kernel/git/lvc/linux-stable.git/log/

> ---
>  drivers/media/tuners/tda18271-fe.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/tuners/tda18271-fe.c b/drivers/media/tuners/tda18271-fe.c
> index f0371d004b36..ff5b22134414 100644
> --- a/drivers/media/tuners/tda18271-fe.c
> +++ b/drivers/media/tuners/tda18271-fe.c
> @@ -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;
> -- 
> 2.25.1
> 



More information about the lvc-project mailing list