mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 14:52:05 +00:00
9dab880d67
Fix a use-after-free that occurs in hcd when in_urb sent from
pn533_usb_send_frame() is completed earlier than out_urb. Its callback
frees the skb data in pn533_send_async_complete() that is used as a
transfer buffer of out_urb. Wait before sending in_urb until the
callback of out_urb is called. To modify the callback of out_urb alone,
separate the complete function of out_urb and ack_urb.
Found by a modified version of syzkaller.
BUG: KASAN: use-after-free in dummy_timer
Call Trace:
memcpy (mm/kasan/shadow.c:65)
dummy_perform_transfer (drivers/usb/gadget/udc/dummy_hcd.c:1352)
transfer (drivers/usb/gadget/udc/dummy_hcd.c:1453)
dummy_timer (drivers/usb/gadget/udc/dummy_hcd.c:1972)
arch_static_branch (arch/x86/include/asm/jump_label.h:27)
static_key_false (include/linux/jump_label.h:207)
timer_expire_exit (include/trace/events/timer.h:127)
call_timer_fn (kernel/time/timer.c:1475)
expire_timers (kernel/time/timer.c:1519)
__run_timers (kernel/time/timer.c:1790)
run_timer_softirq (kernel/time/timer.c:1803)
Fixes:
|
||
---|---|---|
.. | ||
fdp | ||
microread | ||
nfcmrvl | ||
nxp-nci | ||
pn533 | ||
pn544 | ||
s3fwrn5 | ||
st21nfca | ||
st95hf | ||
st-nci | ||
Kconfig | ||
Makefile | ||
mei_phy.c | ||
mei_phy.h | ||
nfcsim.c | ||
port100.c | ||
trf7970a.c | ||
virtual_ncidev.c |