[lvc-project] [PATCH] USBATM: enforce boundary check for sync_wait[]

Fedor Pchelkin pchelkin at ispras.ru
Sat Apr 5 18:23:49 MSK 2025


Вроде для патчей в этот драйвер примерно такой префикс используют:

"usb: ueagle-atm:"

On Thu, 03. Apr 17:43, Alexey V. Vissarionov wrote:
> After plugging and removing the device several times, modem_index
> may become bigger than NB_MODEM resulting in the out-of-boundary
> array access.

bigger than NB_MODEM он не станет как раз из-за условия его
инкрементирования:

	sc->modem_index = (modem_index < NB_MODEM) ? modem_index++ : 0;

А вот *равным* значению NB_MODEM стать может.

> 
> Found by ALT Linux Team (altlinux.org) and Linux Verification Center
> (linuxtesting.org).
> 
> Fixes: b72458a80c75 ("[PATCH] USB: Eagle and ADI 930 usb adsl modem driver")
> Signed-off-by: Alexey V. Vissarionov <gremlin at altlinux.org>
> ---
>  drivers/usb/atm/ueagle-atm.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c
> index 786299892c7f46e8..d4c82737dea11b83 100644
> --- a/drivers/usb/atm/ueagle-atm.c
> +++ b/drivers/usb/atm/ueagle-atm.c
> @@ -2501,7 +2501,9 @@ static int uea_bind(struct usbatm_data *usbatm, struct usb_interface *intf,
>  	if (ifnum != UEA_INTR_IFACE_NO)
>  		return -ENODEV;
>  
> -	usbatm->flags = (sync_wait[modem_index] ? 0 : UDSL_SKIP_HEAVY_INIT);
> +	usbatm->flags =
> +		(((modem_index < NB_MODEM) && sync_wait[modem_index]) ?
> +		0 : UDSL_SKIP_HEAVY_INIT);

Очень-очень много скобок. Самые внешние точно можно убрать же. И для
(modem_index < NB_MODEM) - тоже.


Ну и раз уж настойчиво продолжаете слать патчи в список рассылки
lvc-project at linuxtesting.org, а он предназначен для взаимодействия с
международным сообществом (для других вещей заведён
lvc-patches at linuxtesting.org [1]) - воспринимаю это как знак и предлагаю
отправить патч с подправленными указанными нюансами в это самое
международное сообщество :)

To: Matthieu CASTET <castet.matthieu at free.fr>
To: Stanislaw Gruszka <stf_xl at wp.pl>
Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
Cc: linux-usb at vger.kernel.org
Cc: linux-kernel at vger.kernel.org
Cc: lvc-project at linuxtesting.org


[1]: https://gitlab.linuxtesting.ru/lvc/guides#списки-рассылки-технологического-центра

Спасибо!

>  
>  	/* interface 1 is for outbound traffic */
>  	ret = claim_interface(usb, usbatm, UEA_US_IFACE_NO);
> 
> 
> 
> -- 
> Alexey V. Vissarionov
> gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
> GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net



More information about the lvc-project mailing list