usb: atm: Use size_add() in call to struct_size()
Subsystems (3)
PATCH 1/1 usb: atm: Use size_add() in call to struct_size()
If, for any reason, the open-coded arithmetic causes a wraparound, the protection that struct_size() adds against potential integer overflows is defeated. Fix this by hardening call to struct_size() with size_add().
--- drivers/usb/atm/usbatm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/usb/atm/usbatm.c +2 -1
@@ -1018,7 +1018,8 @@ int usbatm_usb_probe(struct usb_interface *intf, const struct usb_device_id *id,size_t size;/* instance init */ - size =struct_size (instance, urbs, num_rcv_urbs + num_snd_urbs); + size =struct_size (instance, urbs, +size_add (num_rcv_urbs, num_snd_urbs)); instance =kzalloc (size,GFP_KERNEL );if (!instance)return -ENOMEM ;
Signature · 1 line
2.34.1
Quoted 7 lines · Gustavo A. R. Silva
If, for any reason, the open-coded arithmetic causes a wraparound, the protection that
struct_size()adds against potential integer overflows is defeated. Fix this by hardening call tostruct_size()withsize_add().Fixes b626871a7cda ("usb: atm: Use struct_size() helper")Signed-off-by Gustavo A. R. Silva <[email protected]>
Signature · 1 line
Kees Cook
Kees Cook
AppliedQuoted 6 lines · Gustavo A. R. Silva
If, for any reason, the open-coded arithmetic causes a wraparound, the protection that
struct_size()adds against potential integer overflows is defeated. Fix this by hardening call tostruct_size()withsize_add().
Applied to for-next/hardening, thanks!
[1/1] usb: atm: Use size_add() in call to struct_size()
https://git.kernel.org/kees/c/13f1a60fe04f
Take care,
Signature · 1 line
Kees Cook