Bluetooth: hci2: Dropping invalid advertising data ================================================================== BUG: KASAN: slab-out-of-bounds in hci_le_adv_report_evt net/bluetooth/hci_event.c:5600 [inline] BUG: KASAN: slab-out-of-bounds in hci_le_meta_evt+0x38c9/0x3ff0 net/bluetooth/hci_event.c:5923 Read of size 1 at addr ffff8880a8952204 by task kworker/u5:2/8105 CPU: 0 PID: 8105 Comm: kworker/u5:2 Not tainted 5.8.0-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: hci2 hci_rx_work Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x18f/0x20d lib/dump_stack.c:118 print_address_description.constprop.0.cold+0xae/0x436 mm/kasan/report.c:383 __kasan_report mm/kasan/report.c:513 [inline] kasan_report.cold+0x1f/0x37 mm/kasan/report.c:530 hci_le_adv_report_evt net/bluetooth/hci_event.c:5600 [inline] hci_le_meta_evt+0x38c9/0x3ff0 net/bluetooth/hci_event.c:5923 hci_event_packet+0x2e25/0x87a8 net/bluetooth/hci_event.c:6192 hci_rx_work+0x22e/0xb50 net/bluetooth/hci_core.c:4889 process_one_work+0x94c/0x1670 kernel/workqueue.c:2269 worker_thread+0x64c/0x1120 kernel/workqueue.c:2415 kthread+0x3b5/0x4a0 kernel/kthread.c:292 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294 Allocated by task 505: save_stack+0x1b/0x40 mm/kasan/common.c:48 set_track mm/kasan/common.c:56 [inline] __kasan_kmalloc.constprop.0+0xc2/0xd0 mm/kasan/common.c:494 __kmalloc_reserve net/core/skbuff.c:142 [inline] __alloc_skb+0xae/0x550 net/core/skbuff.c:210 alloc_skb include/linux/skbuff.h:1084 [inline] bt_skb_alloc include/net/bluetooth/bluetooth.h:389 [inline] vhci_get_user drivers/bluetooth/hci_vhci.c:165 [inline] vhci_write+0xbd/0x450 drivers/bluetooth/hci_vhci.c:285 call_write_iter include/linux/fs.h:1868 [inline] new_sync_write+0x422/0x650 fs/read_write.c:503 vfs_write+0x59d/0x6b0 fs/read_write.c:578 ksys_write+0x12d/0x250 fs/read_write.c:631 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Freed by task 16: save_stack+0x1b/0x40 mm/kasan/common.c:48 set_track mm/kasan/common.c:56 [inline] kasan_set_free_info mm/kasan/common.c:316 [inline] __kasan_slab_free+0xf5/0x140 mm/kasan/common.c:455 __cache_free mm/slab.c:3426 [inline] kfree+0x103/0x2c0 mm/slab.c:3757 skb_free_head net/core/skbuff.c:590 [inline] skb_release_data+0x6d9/0x910 net/core/skbuff.c:610 skb_release_all net/core/skbuff.c:664 [inline] __kfree_skb net/core/skbuff.c:678 [inline] kfree_skb.part.0+0xc2/0x350 net/core/skbuff.c:696 kfree_skb+0x7d/0x100 include/linux/refcount.h:270 skb_queue_purge+0x14/0x30 net/core/skbuff.c:3077 netlink_sock_destruct+0x105/0x2b0 net/netlink/af_netlink.c:395 __sk_destruct+0x4b/0x860 net/core/sock.c:1770 sk_destruct+0xbd/0xe0 net/core/sock.c:1814 __sk_free+0xef/0x3d0 net/core/sock.c:1825 sk_free+0x78/0xa0 net/core/sock.c:1836 deferred_put_nlk_sk+0x151/0x2e0 net/netlink/af_netlink.c:730 rcu_do_batch kernel/rcu/tree.c:2427 [inline] rcu_core+0x5c7/0x1190 kernel/rcu/tree.c:2655 __do_softirq+0x2de/0xa24 kernel/softirq.c:298 The buggy address belongs to the object at ffff8880a8952000 which belongs to the cache kmalloc-512 of size 512 The buggy address is located 4 bytes to the right of 512-byte region [ffff8880a8952000, ffff8880a8952200) The buggy address belongs to the page: page:ffffea0002a25480 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 flags: 0xfffe0000000200(slab) raw: 00fffe0000000200 ffffea0002873a08 ffffea0002771208 ffff8880aa000a80 raw: 0000000000000000 ffff8880a8952000 0000000100000004 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8880a8952100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8880a8952180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff8880a8952200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ^ ffff8880a8952280: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ffff8880a8952300: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ==================================================================