[lvc-project] [PATCH] [media] saa7134: Unchecked i2c_transfer function result fixed
 Fedor Pchelkin 
 pchelkin at ispras.ru
 
 Fri Mar 15 14:24:43 MSK 2024
 
 
 
On Fri, 16. Feb 15:40, Aleksandr Burakov wrote:
> Return value of function 'i2c_transfer' is not checked that
> may cause undefined behaviour.
>> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>> Fixes: 2cf36ac44730 ("[PATCH] v4l: 656: added support for the following cards")
> Signed-off-by: Aleksandr Burakov <a.burakov at rosalinux.ru>
Здравствуйте, Александр!
Немного не понял про Won't fix метку в Svacer - это подходит под
Confirmed, раз уж подготовлен патч. И критичность Major, думаю.
Возвращаемое значение функции i2c_transfer() проверяется в остальных
частях ядра, даже если отправляется всего одно сообщение.
Для подобного в функции mt352_pinnacle_tuner_set_params() предполагается
исправление?
Текущий патч добавлен в ветки 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/pci/saa7134/saa7134-dvb.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>> diff --git a/drivers/media/pci/saa7134/saa7134-dvb.c b/drivers/media/pci/saa7134/saa7134-dvb.c
> index 9c6cfef03331..a66df6adfaad 100644
> --- a/drivers/media/pci/saa7134/saa7134-dvb.c
> +++ b/drivers/media/pci/saa7134/saa7134-dvb.c
> @@ -466,7 +466,9 @@ static int philips_europa_tuner_sleep(struct dvb_frontend *fe)
> 	/* switch the board to analog mode */
> 	if (fe->ops.i2c_gate_ctrl)
> 		fe->ops.i2c_gate_ctrl(fe, 1);
> -	i2c_transfer(&dev->i2c_adap, &analog_msg, 1);
> +	if (i2c_transfer(&dev->i2c_adap, &analog_msg, 1) != 1)
> +		return -EIO;
> +
> 	return 0;
> }
>> @@ -1018,7 +1020,9 @@ static int md8800_set_voltage2(struct dvb_frontend *fe,
> 	else
> 		wbuf[1] = rbuf & 0xef;
> 	msg[0].len = 2;
> -	i2c_transfer(&dev->i2c_adap, msg, 1);
> +	if (i2c_transfer(&dev->i2c_adap, msg, 1) != 1)
> +		return -EIO;
> +
> 	return 0;
> }
>> -- 
> 2.25.1
>
 
 
More information about the lvc-project
mailing list