summaryrefslogtreecommitdiff
path: root/drivers/nfc/microread
diff options
context:
space:
mode:
authorMinsuk Kang <linuxlovemin@yonsei.ac.kr>2023-01-06 11:23:44 +0300
committerDavid S. Miller <davem@davemloft.net>2023-01-09 10:34:13 +0300
commit9dab880d675b9d0dd56c6428e4e8352a3339371d (patch)
treef2a247560003e5dcd7e4b2a217b41590989e8f32 /drivers/nfc/microread
parent2ab6478d1266b522a0a6ce3697914d63529f9e7a (diff)
downloadlinux-9dab880d675b9d0dd56c6428e4e8352a3339371d.tar.xz
nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame()
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: c46ee38620a2 ("NFC: pn533: add NXP pn533 nfc device driver") Signed-off-by: Minsuk Kang <linuxlovemin@yonsei.ac.kr> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/nfc/microread')
0 files changed, 0 insertions, 0 deletions