mirror of
https://github.com/torvalds/linux.git
synced 2025-11-08 12:40:51 +02:00
Alexander reported a use of uninitialized value in
atusb_set_extended_addr(), that is caused by reading 0 bytes via
usb_control_msg().
Fix it by validating if the number of bytes transferred is actually
correct, since usb_control_msg() may read less bytes, than was requested
by caller.
Fail log:
BUG: KASAN: uninit-cmp in ieee802154_is_valid_extended_unicast_addr include/linux/ieee802154.h:310 [inline]
BUG: KASAN: uninit-cmp in atusb_set_extended_addr drivers/net/ieee802154/atusb.c:1000 [inline]
BUG: KASAN: uninit-cmp in atusb_probe.cold+0x29f/0x14db drivers/net/ieee802154/atusb.c:1056
Uninit value used in comparison: 311daa649a2003bd stack handle: 000000009a2003bd
ieee802154_is_valid_extended_unicast_addr include/linux/ieee802154.h:310 [inline]
atusb_set_extended_addr drivers/net/ieee802154/atusb.c:1000 [inline]
atusb_probe.cold+0x29f/0x14db drivers/net/ieee802154/atusb.c:1056
usb_probe_interface+0x314/0x7f0 drivers/usb/core/driver.c:396
Fixes:
|
||
|---|---|---|
| .. | ||
| adf7242.c | ||
| at86rf230.c | ||
| at86rf230.h | ||
| atusb.c | ||
| atusb.h | ||
| ca8210.c | ||
| cc2520.c | ||
| fakelb.c | ||
| Kconfig | ||
| mac802154_hwsim.c | ||
| mac802154_hwsim.h | ||
| Makefile | ||
| mcr20a.c | ||
| mcr20a.h | ||
| mrf24j40.c | ||