====================================== | xx__-> [ 747.313144][ C0] ================================================================== | [ 747.313477][ C0] BUG: KASAN: slab-out-of-bounds in tcp_v6_send_response (./include/linux/instrumented.h:82 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 ./include/net/inet_sock.h:411 net/ipv6/tcp_ipv6.c:983) | [ 747.313746][ C0] Read of size 8 at addr ff11000013b6d950 by task bench-lookups_i/9693 | [ 747.314038][ C0] [ 747.314148][ C0] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 747.314150][ C0] Call Trace: [ 747.314152][ C0] [ 747.314154][ C0] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 747.314160][ C0] print_address_description.constprop.0 (mm/kasan/report.c:378) [ 747.314165][ C0] print_report (mm/kasan/report.c:482) [ 747.314167][ C0] ? __virt_addr_valid (./include/linux/rcupdate.h:948 ./include/linux/mmzone.h:2276 arch/x86/mm/physaddr.c:54) [ 747.314171][ C0] ? __virt_addr_valid (./include/linux/rcupdate.h:974 (discriminator 1) ./include/linux/mmzone.h:2286 (discriminator 1) arch/x86/mm/physaddr.c:54 (discriminator 1)) [ 747.314174][ C0] kasan_report (mm/kasan/report.c:595) [ 747.314178][ C0] ? tcp_v6_send_response (./include/linux/instrumented.h:82 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 ./include/net/inet_sock.h:411 net/ipv6/tcp_ipv6.c:983) [ 747.314181][ C0] ? tcp_v6_send_response (./include/linux/instrumented.h:82 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 ./include/net/inet_sock.h:411 net/ipv6/tcp_ipv6.c:983) [ 747.314183][ C0] kasan_check_range (mm/kasan/generic.c:186 mm/kasan/generic.c:200) [ 747.314186][ C0] tcp_v6_send_response (./include/linux/instrumented.h:82 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 ./include/net/inet_sock.h:411 net/ipv6/tcp_ipv6.c:983) [ 747.314190][ C0] ? tcp_v6_send_synack (./include/net/inet_sock.h:338 (discriminator 1)) [ 747.314191][ C0] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 747.314196][ C0] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 747.314198][ C0] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 747.314202][ C0] tcp_v6_timewait_ack (net/ipv6/tcp_ipv6.c:1149 net/ipv6/tcp_ipv6.c:1201) [ 747.314205][ C0] ? tcp_v6_reqsk_send_ack (net/ipv6/tcp_ipv6.c:1245 (discriminator 7)) [ 747.314207][ C0] ? __local_bh_enable_ip (kernel/softirq.c:478) [ 747.314210][ C0] ? tcp_ecn_openreq_child (./include/net/tcp_ecn.h:139 (discriminator 4)) [ 747.314214][ C0] ? ip6_pol_route (./include/linux/rcupdate.h:882 net/ipv6/route.c:2339) [ 747.314217][ C0] ? __asan_memcpy (mm/kasan/shadow.c:106 (discriminator 1)) [ 747.314220][ C0] tcp_v6_rcv (net/ipv6/tcp_ipv6.c:1993) [ 747.314223][ C0] ? tcp_v6_syn_recv_sock (./include/net/sock.h:1128 (discriminator 2)) [ 747.314225][ C0] ? ipv6_raw_deliver (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) net/ipv6/raw.c:207 (discriminator 2)) [ 747.314227][ C0] ? ipv6_raw_deliver (./include/linux/rcupdate.h:882 net/ipv6/raw.c:207) [ 747.314229][ C0] ? ret_from_fork_asm (arch/x86/entry/entry_64.S:245) [ 747.314232][ C0] ip6_protocol_deliver_rcu (net/ipv6/ip6_input.c:479) [ 747.314237][ C0] ip6_input_finish (net/ipv6/ip6_input.c:534) [ 747.314239][ C0] ip6_input (./include/linux/netfilter.h:325 ./include/linux/netfilter.h:319 net/ipv6/ip6_input.c:545) [ 747.314242][ C0] ? ip6_input_finish (net/ipv6/ip6_input.c:527 (discriminator 46)) [ 747.314244][ C0] ? ip6_rcv_core (./include/linux/skbuff.h:3432 net/ipv6/ip6_input.c:332) [ 747.314247][ C0] ipv6_rcv (./include/net/dst.h:480 (discriminator 4) net/ipv6/ip6_input.c:119 (discriminator 4) ./include/linux/netfilter.h:325 (discriminator 4) ./include/linux/netfilter.h:319 (discriminator 4) net/ipv6/ip6_input.c:351 (discriminator 4)) [ 747.314249][ C0] ? ip6_rcv_core (net/ipv6/ip6_input.c:211 (discriminator 96)) [ 747.314251][ C0] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 747.314253][ C0] ? __update_load_avg_cfs_rq (kernel/sched/pelt.c:329) [ 747.314256][ C0] ? mark_usage (kernel/locking/lockdep.c:4690) [ 747.314258][ C0] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 747.314260][ C0] ? trace_raw_output_rcu_invoke_kfree_bulk_callback (./include/trace/events/rcu.h:655) [ 747.314263][ C0] ? process_backlog (./include/linux/local_lock_internal.h:62 (discriminator 2) net/core/dev.c:6726 (discriminator 2)) [ 747.314267][ C0] __netif_receive_skb_one_core (net/core/dev.c:6264) [ 747.314269][ C0] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 747.314271][ C0] ? process_backlog (./include/linux/local_lock_internal.h:62 (discriminator 2) net/core/dev.c:6726 (discriminator 2)) [ 747.314273][ C0] ? __netif_receive_skb_list_core (net/core/dev.c:6310) [ 747.314276][ C0] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 747.314279][ C0] process_backlog (net/core/dev.c:6728) [ 747.314282][ C0] __napi_poll (net/core/dev.c:7787) [ 747.314285][ C0] net_rx_action (net/core/dev.c:7850 net/core/dev.c:8007) [ 747.314287][ C0] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 747.314289][ C0] ? __napi_poll (./include/net/gro.h:507) [ 747.314293][ C0] ? ktime_get_update_offsets_now (kernel/time/timekeeping.c:304 kernel/time/timekeeping.c:482 kernel/time/timekeeping.c:2859) [ 747.314297][ C0] ? mark_held_locks (kernel/locking/lockdep.c:4341) [ 747.314299][ C0] handle_softirqs (kernel/softirq.c:645) [ 747.314302][ C0] ? _local_bh_enable (kernel/softirq.c:428 (discriminator 1)) [ 747.314303][ C0] ? do_raw_spin_unlock (./include/linux/instrumented.h:82 ./include/linux/atomic/atomic-instrumented.h:32 ./include/asm-generic/qspinlock.h:58 kernel/locking/spinlock_debug.c:101 kernel/locking/spinlock_debug.c:141) [ 747.314306][ C0] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 747.314308][ C0] ? __dev_queue_xmit (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:920 (discriminator 2) net/core/dev.c:4961 (discriminator 2)) [ 747.314310][ C0] do_softirq (kernel/softirq.c:546 (discriminator 19) kernel/softirq.c:533 (discriminator 19)) [ 747.314312][ C0] [ 747.314313][ C0] [ 747.314314][ C0] __local_bh_enable_ip (kernel/softirq.c:473) [ 747.314316][ C0] __dev_queue_xmit (./include/linux/bottom_half.h:33 (discriminator 2) ./include/linux/rcupdate.h:923 (discriminator 2) net/core/dev.c:4961 (discriminator 2)) [ 747.314320][ C0] ? netdev_core_pick_tx (net/core/dev.c:4784) [ 747.314322][ C0] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 747.314323][ C0] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 747.314326][ C0] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 747.314327][ C0] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 747.314329][ C0] ? mark_held_locks (kernel/locking/lockdep.c:4341) [ 747.314331][ C0] ? __asan_memcpy (mm/kasan/shadow.c:106 (discriminator 1)) [ 747.314333][ C0] ? neigh_hh_output (./include/net/neighbour.h:525) [ 747.314336][ C0] ip6_finish_output2 (./include/net/neighbour.h:558 net/ipv6/ip6_output.c:138) [ 747.314338][ C0] ? ip6_dst_lookup (net/ipv6/ip6_output.c:1297) [ 747.314340][ C0] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 747.314342][ C0] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 747.314344][ C0] ? ip6_mtu (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) ./include/net/ip6_route.h:384 (discriminator 2) net/ipv6/route.c:3290 (discriminator 2)) [ 747.314347][ C0] ip6_finish_output (net/ipv6/ip6_output.c:210 net/ipv6/ip6_output.c:221) [ 747.314349][ C0] ip6_output (./include/linux/netfilter.h:314 net/ipv6/ip6_output.c:248) [ 747.314351][ C0] ? ip6_finish_output (./include/net/inet_sock.h:338 (discriminator 1)) [ 747.314353][ C0] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 747.314355][ C0] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 747.314356][ C0] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 747.314359][ C0] ip6_xmit (./include/net/dst.h:470 (discriminator 4) ./include/linux/netfilter.h:325 (discriminator 4) ./include/linux/netfilter.h:319 (discriminator 4) net/ipv6/ip6_output.c:381 (discriminator 4)) [ 747.314361][ C0] ? mark_usage (kernel/locking/lockdep.c:4690) [ 747.314363][ C0] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 747.314366][ C0] ? ip6_autoflowlabel (./arch/x86/include/asm/bitops.h:202 (discriminator 1)) [ 747.314368][ C0] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 747.314370][ C0] ? mark_usage (kernel/locking/lockdep.c:4690) [ 747.314371][ C0] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 747.314374][ C0] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 747.314376][ C0] ? inet6_csk_xmit (./include/linux/rcupdate.h:309 (discriminator 2) ./include/linux/rcupdate.h:849 (discriminator 2) net/ipv6/inet6_connection_sock.c:120 (discriminator 2)) [ 747.314378][ C0] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 747.314380][ C0] ? lock_acquire (./include/trace/events/lock.h:23 (discriminator 22) kernel/locking/lockdep.c:5871 (discriminator 22)) [ 747.314383][ C0] inet6_csk_xmit (net/ipv6/inet6_connection_sock.c:123 (discriminator 13)) [ 747.314385][ C0] __tcp_transmit_skb (net/ipv4/tcp_output.c:1716) [ 747.314389][ C0] ? __tcp_select_window (./arch/x86/include/asm/atomic.h:23) [ 747.314391][ C0] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 747.314392][ C0] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 747.314394][ C0] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 747.314396][ C0] ? tcp_mtu_probe (./include/net/net_namespace.h:422 (discriminator 1) ./include/net/sock.h:713 (discriminator 1) net/ipv4/tcp_output.c:2697 (discriminator 1)) [ 747.314399][ C0] tcp_write_xmit (net/ipv4/tcp_output.c:1734 net/ipv4/tcp_output.c:3070) [ 747.314402][ C0] ? __alloc_skb (./include/linux/instrumented.h:97 ./include/linux/atomic/atomic-instrumented.h:67 ./include/linux/refcount.h:134 net/core/skbuff.c:737) [ 747.314406][ C0] ? tcp_retrans_try_collapse (./arch/x86/include/asm/atomic.h:23) [ 747.314408][ C0] ? tcp_set_state (net/ipv4/tcp.c:3028) [ 747.314412][ C0] __tcp_push_pending_frames (net/ipv4/tcp_output.c:3253 (discriminator 1)) [ 747.314414][ C0] __tcp_close (net/ipv4/tcp.c:3220) [ 747.314417][ C0] tcp_close (net/ipv4/tcp.c:3311) [ 747.314419][ C0] inet_release (net/ipv4/af_inet.c:442) [ 747.314421][ C0] ? fcntl_setlk (fs/locks.c:2552) [ 747.314425][ C0] __sock_release (net/socket.c:735) [ 747.314428][ C0] sock_close (net/socket.c:1526 (discriminator 1)) [ 747.314430][ C0] __fput (fs/file_table.c:512) [ 747.314433][ C0] fput_close_sync (fs/file_table.c:617) [ 747.314435][ C0] ? alloc_file_clone (fs/file_table.c:479) [ 747.314437][ C0] ? do_raw_spin_unlock (./include/linux/instrumented.h:82 ./include/linux/atomic/atomic-instrumented.h:32 ./include/asm-generic/qspinlock.h:58 kernel/locking/spinlock_debug.c:101 kernel/locking/spinlock_debug.c:141) [ 747.314439][ C0] __x64_sys_close (fs/open.c:1560 fs/open.c:1545 fs/open.c:1545) [ 747.314442][ C0] do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) [ 747.314445][ C0] ? exc_page_fault (arch/x86/mm/fault.c:1489 (discriminator 3) arch/x86/mm/fault.c:1536 (discriminator 3)) [ 747.314447][ C0] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 747.314450][ C0] RIP: 0033:0x7f3c5d647312 [ 747.314453][ C0] Code: 08 0f 85 71 41 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 f3 0f 1e fa 55 bf 01 00 All code ======== 0: 08 0f or %cl,(%rdi) 2: 85 71 41 test %esi,0x41(%rcx) 5: ff (bad) 6: ff 49 89 decl -0x77(%rcx) 9: fb sti a: 48 89 f0 mov %rsi,%rax d: 48 89 d7 mov %rdx,%rdi 10: 48 89 ce mov %rcx,%rsi 13: 4c 89 c2 mov %r8,%rdx 16: 4d 89 ca mov %r9,%r10 19: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 1e: 4c 8b 4c 24 10 mov 0x10(%rsp),%r9 23: 4c 89 5c 24 08 mov %r11,0x8(%rsp) 28: 0f 05 syscall 2a:* c3 ret <-- trapping instruction 2b: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) 32: 00 00 00 35: 0f 1f 00 nopl (%rax) 38: f3 0f 1e fa endbr64 3c: 55 push %rbp 3d: bf .byte 0xbf 3e: 01 00 add %eax,(%rax) Code starting with the faulting instruction =========================================== 0: c3 ret 1: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) 8: 00 00 00 b: 0f 1f 00 nopl (%rax) e: f3 0f 1e fa endbr64 12: 55 push %rbp 13: bf .byte 0xbf 14: 01 00 add %eax,(%rax) [ 747.314455][ C0] RSP: 002b:00007ffc7831e758 EFLAGS: 00000246 ORIG_RAX: 0000000000000003 [ 747.314465][ C0] RAX: ffffffffffffffda RBX: 0000000000000058 RCX: 00007f3c5d647312 [ 747.314467][ C0] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000000000000000b [ 747.314468][ C0] RBP: 00007ffc7831e780 R08: 0000000000000000 R09: 0000000000000000 [ 747.314469][ C0] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000027cf2210 Finger prints: print_report:kasan_report:kasan_check_range:tcp_v6_send_response:tcp_v6_timewait_ack