bisecting fixing commit since 4fccc2503536a564a4ba31a1d50439854201659f building syzkaller on 2c36e7a75f8689b3da20e1a81a2ee5391f3af6e5 testing commit 4fccc2503536a564a4ba31a1d50439854201659f compiler: gcc version 8.4.1 20210217 (GCC) kernel signature: 697f83e4e48c52049d0187553e73b49ecc64500a4701d51795204a2efd77d735 run #0: crashed: KASAN: slab-out-of-bounds Write in decode_data run #1: crashed: KASAN: slab-out-of-bounds Write in decode_data run #2: crashed: KASAN: slab-out-of-bounds Write in decode_data run #3: crashed: KASAN: slab-out-of-bounds Write in decode_data run #4: crashed: KASAN: slab-out-of-bounds Write in decode_data run #5: crashed: KASAN: slab-out-of-bounds Write in decode_data run #6: crashed: KASAN: slab-out-of-bounds Write in decode_data run #7: crashed: KASAN: slab-out-of-bounds Write in decode_data run #8: crashed: KASAN: slab-out-of-bounds Write in decode_data run #9: crashed: KASAN: slab-out-of-bounds Write in decode_data run #10: crashed: KASAN: slab-out-of-bounds Write in decode_data run #11: crashed: KASAN: slab-out-of-bounds Write in decode_data run #12: crashed: KASAN: slab-out-of-bounds Write in decode_data run #13: crashed: KASAN: use-after-free Write in decode_data run #14: crashed: KASAN: slab-out-of-bounds Write in decode_data run #15: crashed: KASAN: slab-out-of-bounds Write in decode_data run #16: crashed: KASAN: slab-out-of-bounds Write in decode_data run #17: crashed: KASAN: slab-out-of-bounds Write in decode_data run #18: crashed: KASAN: slab-out-of-bounds Write in decode_data run #19: crashed: KASAN: slab-out-of-bounds Write in decode_data testing current HEAD 4938296e03bd227e5020d63d418956fe52baf97c testing commit 4938296e03bd227e5020d63d418956fe52baf97c compiler: gcc version 8.4.1 20210217 (GCC) kernel signature: 849d03427b40bf471232eba84d9dfb96628411ebbff7e740b632c594c65643f1 run #0: crashed: KASAN: slab-out-of-bounds Write in decode_data run #1: crashed: KASAN: slab-out-of-bounds Write in decode_data run #2: crashed: KASAN: slab-out-of-bounds Write in decode_data run #3: crashed: KASAN: slab-out-of-bounds Write in decode_data run #4: crashed: KASAN: slab-out-of-bounds Write in decode_data run #5: crashed: KASAN: slab-out-of-bounds Write in decode_data run #6: crashed: KASAN: slab-out-of-bounds Write in decode_data run #7: crashed: KASAN: slab-out-of-bounds Write in decode_data run #8: crashed: KASAN: slab-out-of-bounds Write in decode_data run #9: crashed: KASAN: use-after-free Write in decode_data revisions tested: 2, total time: 30m48.815263956s (build: 23m54.925198405s, test: 6m19.924610543s) the crash still happens on HEAD commit msg: Linux 4.19.198 crash: KASAN: use-after-free Write in decode_data device veth0_vlan entered promiscuous mode sp0: Synchronizing with TNC device veth1_vlan entered promiscuous mode ================================================================== IPv6: ADDRCONF(NETDEV_UP): macvlan0: link is not ready BUG: KASAN: use-after-free in decode_data.part.2+0x23c/0x280 drivers/net/hamradio/6pack.c:863 IPv6: ADDRCONF(NETDEV_UP): macvlan1: link is not ready Write of size 1 at addr ffff8881da59010e by task kworker/u4:2/40 IPv6: ADDRCONF(NETDEV_UP): veth0_macvtap: link is not ready CPU: 0 PID: 40 Comm: kworker/u4:2 Not tainted 4.19.198-syzkaller #0 IPv6: ADDRCONF(NETDEV_UP): veth1_macvtap: link is not ready Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: events_unbound flush_to_ldisc Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x123/0x171 lib/dump_stack.c:118 device veth0_macvtap entered promiscuous mode print_address_description.cold.8+0x9/0x1ff mm/kasan/report.c:256 kasan_report_error mm/kasan/report.c:354 [inline] kasan_report mm/kasan/report.c:412 [inline] kasan_report.cold.9+0x242/0x2fe mm/kasan/report.c:396 __asan_report_store1_noabort+0x17/0x20 mm/kasan/report.c:435 decode_data.part.2+0x23c/0x280 drivers/net/hamradio/6pack.c:863 decode_data drivers/net/hamradio/6pack.c:985 [inline] sixpack_decode drivers/net/hamradio/6pack.c:988 [inline] sixpack_receive_buf drivers/net/hamradio/6pack.c:458 [inline] sixpack_receive_buf+0x722/0x1110 drivers/net/hamradio/6pack.c:435 tty_ldisc_receive_buf+0xff/0x1b0 drivers/tty/tty_buffer.c:460 IPv6: ADDRCONF(NETDEV_UP): macvtap0: link is not ready tty_port_default_receive_buf+0x5f/0x90 drivers/tty/tty_port.c:38 receive_buf drivers/tty/tty_buffer.c:476 [inline] flush_to_ldisc+0x1aa/0x3a0 drivers/tty/tty_buffer.c:528 process_one_work+0x830/0x1670 kernel/workqueue.c:2153 device veth1_macvtap entered promiscuous mode worker_thread+0x85/0xb60 kernel/workqueue.c:2296 kthread+0x347/0x410 kernel/kthread.c:259 IPv6: ADDRCONF(NETDEV_UP): macsec0: link is not ready ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415 Allocated by task 5545: save_stack+0x43/0xd0 mm/kasan/kasan.c:448 set_track mm/kasan/kasan.c:460 [inline] kasan_kmalloc mm/kasan/kasan.c:553 [inline] kasan_kmalloc+0xc7/0xe0 mm/kasan/kasan.c:531 kmem_cache_alloc_trace+0x152/0x740 mm/slab.c:3625 kmalloc include/linux/slab.h:515 [inline] syslog_print kernel/printk/printk.c:1337 [inline] do_syslog kernel/printk/printk.c:1505 [inline] do_syslog+0x6fe/0x11a0 kernel/printk/printk.c:1479 kmsg_read+0x65/0x80 fs/proc/kmsg.c:40 proc_reg_read+0x1a7/0x240 fs/proc/inode.c:231 __vfs_read+0xe3/0x880 fs/read_write.c:416 vfs_read+0xfb/0x2f0 fs/read_write.c:452 ksys_read+0x103/0x260 fs/read_write.c:579 __do_sys_read fs/read_write.c:589 [inline] __se_sys_read fs/read_write.c:587 [inline] __x64_sys_read+0x6e/0xb0 fs/read_write.c:587 do_syscall_64+0xd0/0x4e0 arch/x86/entry/common.c:293 entry_SYSCALL_64_after_hwframe+0x49/0xbe Freed by task 5545: save_stack+0x43/0xd0 mm/kasan/kasan.c:448 set_track mm/kasan/kasan.c:460 [inline] __kasan_slab_free+0x102/0x150 mm/kasan/kasan.c:521 kasan_slab_free+0xe/0x10 mm/kasan/kasan.c:528 __cache_free mm/slab.c:3503 [inline] kfree+0xcf/0x220 mm/slab.c:3822 syslog_print_all kernel/printk/printk.c:1467 [inline] do_syslog kernel/printk/printk.c:1519 [inline] do_syslog+0xdf7/0x11a0 kernel/printk/printk.c:1479 kmsg_read+0x65/0x80 fs/proc/kmsg.c:40 proc_reg_read+0x1a7/0x240 fs/proc/inode.c:231 __vfs_read+0xe3/0x880 fs/read_write.c:416 vfs_read+0xfb/0x2f0 fs/read_write.c:452 ksys_read+0x103/0x260 fs/read_write.c:579 __do_sys_read fs/read_write.c:589 [inline] __se_sys_read fs/read_write.c:587 [inline] __x64_sys_read+0x6e/0xb0 fs/read_write.c:587 do_syscall_64+0xd0/0x4e0 arch/x86/entry/common.c:293 entry_SYSCALL_64_after_hwframe+0x49/0xbe The buggy address belongs to the object at ffff8881da590000 which belongs to the cache kmalloc-1024 of size 1024 The buggy address is located 270 bytes inside of 1024-byte region [ffff8881da590000, ffff8881da590400) The buggy address belongs to the page: page:ffffea0007696400 count:1 mapcount:0 mapping:ffff8881f6400ac0 index:0x0 compound_mapcount: 0 flags: 0x17ffe0000008100(slab|head) raw: 017ffe0000008100 ffffea0007662b88 ffffea000769b808 ffff8881f6400ac0 raw: 0000000000000000 ffff8881da590000 0000000100000007 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8881da590000: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8881da590080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff8881da590100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff8881da590180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8881da590200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ================================================================== IPv6: ADDRCONF(NETDEV_CHANGE): macvlan0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): macvlan1: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth1_macvtap: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth0_macvtap: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): macsec0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): macvtap0: link becomes ready IPv6: ADDRCONF(NETDEV_UP): veth0_to_batadv: link is not ready IPv6: ADDRCONF(NETDEV_UP): veth1_to_batadv: link is not ready batman_adv: The newly added mac address (aa:aa:aa:aa:aa:3d) already exists on: batadv_slave_0 batman_adv: It is strongly recommended to keep mac addresses unique to avoid problems! batman_adv: The newly added mac address (aa:aa:aa:aa:aa:3d) already exists on: batadv_slave_0 batman_adv: It is strongly recommended to keep mac addresses unique to avoid problems! batman_adv: The newly added mac address (aa:aa:aa:aa:aa:3d) already exists on: batadv_slave_0 batman_adv: It is strongly recommended to keep mac addresses unique to avoid problems! batman_adv: The newly added mac address (aa:aa:aa:aa:aa:3d) already exists on: batadv_slave_0 batman_adv: It is strongly recommended to keep mac addresses unique to avoid problems! batman_adv: The newly added mac address (aa:aa:aa:aa:aa:3d) already exists on: batadv_slave_0 batman_adv: It is strongly recommended to keep mac addresses unique to avoid problems! IPv6: ADDRCONF(NETDEV_UP): batadv_slave_0: link is not ready batman_adv: batadv0: Interface activated: batadv_slave_0 IPv6: ADDRCONF(NETDEV_CHANGE): batadv_slave_0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_batadv: link becomes ready batman_adv: The newly added mac address (aa:aa:aa:aa:aa:3e) already exists on: batadv_slave_1 batman_adv: It is strongly recommended to keep mac addresses unique to avoid problems! batman_adv: The newly added mac address (aa:aa:aa:aa:aa:3e) already exists on: batadv_slave_1 batman_adv: It is strongly recommended to keep mac addresses unique to avoid problems! batman_adv: The newly added mac address (aa:aa:aa:aa:aa:3e) already exists on: batadv_slave_1 batman_adv: It is strongly recommended to keep mac addresses unique to avoid problems! batman_adv: The newly added mac address (aa:aa:aa:aa:aa:3e) already exists on: batadv_slave_1 batman_adv: It is strongly recommended to keep mac addresses unique to avoid problems! batman_adv: The newly added mac address (aa:aa:aa:aa:aa:3e) already exists on: batadv_slave_1 batman_adv: It is strongly recommended to keep mac addresses unique to avoid problems! IPv6: ADDRCONF(NETDEV_UP): batadv_slave_1: link is not ready batman_adv: batadv0: Interface activated: batadv_slave_1 sp0: Synchronizing with TNC IPv6: ADDRCONF(NETDEV_CHANGE): batadv_slave_1: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth1_to_batadv: link becomes ready sp0: Synchronizing with TNC sp1: Synchronizing with TNC sp0: Synchronizing with TNC sp1: Synchronizing with TNC sp0: Synchronizing with TNC sp1: Synchronizing with TNC sp2: Synchronizing with TNC kasan: CONFIG_KASAN_INLINE enabled kasan: GPF could be caused by NULL-ptr deref or user memory access general protection fault: 0000 [#1] PREEMPT SMP KASAN CPU: 0 PID: 5856 Comm: syz-executor.3 Tainted: G B 4.19.198-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:____rb_erase_color lib/rbtree.c:370 [inline] RIP: 0010:rb_erase_cached+0x3c5/0x1cd0 lib/rbtree.c:480 Code: 49 89 c4 e9 f6 fe ff ff 49 8d 4c 24 10 48 89 c8 48 c1 e8 03 80 3c 18 00 0f 85 8e 13 00 00 4d 8b 7c 24 10 4c 89 f8 48 c1 e8 03 <80> 3c 18 00 0f 85 01 13 00 00 4d 8b 2f 4d 8d 77 08 4c 89 f0 48 c1 RSP: 0018:ffff8881e9b0f998 EFLAGS: 00010046 RAX: 0000000000000000 RBX: dffffc0000000000 RCX: ffff8881d69a06a8 RDX: ffffed103ed05896 RSI: ffff8881f682c4b0 RDI: ffff8881d69a06a0 RBP: ffff8881e9b0f9e0 R08: 0000000000000000 R09: ffff8881e99487d8 R10: 00000008f2b239e1 R11: 0000000000000000 R12: ffff8881d69a0698 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 FS: 0000000000b05400(0000) GS:ffff8881f6800000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f1b53035b00 CR3: 00000001e921f001 CR4: 00000000001606f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: __dequeue_entity kernel/sched/fair.c:591 [inline] set_next_entity+0x241/0x770 kernel/sched/fair.c:4145 pick_next_task_fair+0xe2f/0x1560 kernel/sched/fair.c:6808 pick_next_task kernel/sched/core.c:3363 [inline] __schedule+0x409/0x1d40 kernel/sched/core.c:3491 schedule+0x7f/0x1b0 kernel/sched/core.c:3561 freezable_schedule include/linux/freezer.h:172 [inline] do_nanosleep+0x1f2/0x5d0 kernel/time/hrtimer.c:1709 hrtimer_nanosleep+0x1f7/0x550 kernel/time/hrtimer.c:1763 common_nsleep+0x15/0x20 kernel/time/posix-timers.c:1204 __do_sys_clock_nanosleep kernel/time/posix-timers.c:1231 [inline] __se_sys_clock_nanosleep kernel/time/posix-timers.c:1209 [inline] __x64_sys_clock_nanosleep+0x271/0x3e0 kernel/time/posix-timers.c:1209 do_syscall_64+0xd0/0x4e0 arch/x86/entry/common.c:293 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x4883ca Code: 83 ff 03 74 3b 48 83 ec 28 b8 fa ff ff ff 83 ff 02 49 89 ca 0f 44 f8 64 8b 04 25 18 00 00 00 85 c0 75 2d b8 e6 00 00 00 0f 05 <89> c2 f7 da 3d 00 f0 ff ff b8 00 00 00 00 0f 47 c2 48 83 c4 28 c3 RSP: 002b:00007ffc80765e00 EFLAGS: 00000246 ORIG_RAX: 00000000000000e6 RAX: ffffffffffffffda RBX: 0000000000001c17 RCX: 00000000004883ca RDX: 00007ffc80765e40 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 00007ffc80765ebc R08: 00007ffc807f0000 R09: 0000000bb258b494 R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffc80765f20 R13: 000000000000a1c1 R14: 000000000000a174 R15: 0000000000000007 Modules linked in: ---[ end trace bdbf0218fc69cb55 ]--- RIP: 0010:____rb_erase_color lib/rbtree.c:370 [inline] RIP: 0010:rb_erase_cached+0x3c5/0x1cd0 lib/rbtree.c:480 Code: 49 89 c4 e9 f6 fe ff ff 49 8d 4c 24 10 48 89 c8 48 c1 e8 03 80 3c 18 00 0f 85 8e 13 00 00 4d 8b 7c 24 10 4c 89 f8 48 c1 e8 03 <80> 3c 18 00 0f 85 01 13 00 00 4d 8b 2f 4d 8d 77 08 4c 89 f0 48 c1 RSP: 0018:ffff8881e9b0f998 EFLAGS: 00010046 RAX: 0000000000000000 RBX: dffffc0000000000 RCX: ffff8881d69a06a8 RDX: ffffed103ed05896 RSI: ffff8881f682c4b0 RDI: ffff8881d69a06a0 RBP: ffff8881e9b0f9e0 R08: 0000000000000000 R09: ffff8881e99487d8 R10: 00000008f2b239e1 R11: 0000000000000000 R12: ffff8881d69a0698 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 FS: 0000000000b05400(0000) GS:ffff8881f6800000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f1b53035b00 CR3: 00000001e921f001 CR4: 00000000001606f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400