[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