syzbot


KMSAN: uninit-value in skb_split

Status: closed as invalid on 2018/09/05 11:10
Subsystems: net
[Documentation on labels]
First crash: 2622d, last: 2622d

Sample crash report:
IPv6: ADDRCONF(NETDEV_CHANGE): bridge_slave_0: link becomes ready
bridge0: port 1(bridge_slave_0) entered blocking state
bridge0: port 1(bridge_slave_0) entered forwarding state
==================================================================
BUG: KMSAN: uninit-value in __read_once_size include/linux/compiler.h:197 [inline]
BUG: KMSAN: uninit-value in compound_head include/linux/page-flags.h:142 [inline]
BUG: KMSAN: uninit-value in get_page include/linux/mm.h:848 [inline]
BUG: KMSAN: uninit-value in __skb_frag_ref include/linux/skbuff.h:2741 [inline]
BUG: KMSAN: uninit-value in skb_frag_ref include/linux/skbuff.h:2753 [inline]
BUG: KMSAN: uninit-value in skb_split_no_header net/core/skbuff.c:3021 [inline]
BUG: KMSAN: uninit-value in skb_split+0x14c3/0x1dd0 net/core/skbuff.c:3051
CPU: 1 PID: 17630 Comm: syz-executor4 Not tainted 4.17.0+ #9
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x185/0x1d0 lib/dump_stack.c:113
 kmsan_report+0x188/0x2a0 mm/kmsan/kmsan.c:1125
 __msan_warning_32+0x70/0xc0 mm/kmsan/kmsan_instr.c:620
 __read_once_size include/linux/compiler.h:197 [inline]
 compound_head include/linux/page-flags.h:142 [inline]
 get_page include/linux/mm.h:848 [inline]
 __skb_frag_ref include/linux/skbuff.h:2741 [inline]
 skb_frag_ref include/linux/skbuff.h:2753 [inline]
 skb_split_no_header net/core/skbuff.c:3021 [inline]
 skb_split+0x14c3/0x1dd0 net/core/skbuff.c:3051
 tso_fragment net/ipv4/tcp_output.c:1895 [inline]
 tcp_write_xmit+0x21f1/0xb200 net/ipv4/tcp_output.c:2364
 __tcp_push_pending_frames+0x124/0x400 net/ipv4/tcp_output.c:2546
 tcp_push_pending_frames include/net/tcp.h:1681 [inline]
 tcp_data_snd_check+0x184/0xe60 net/ipv4/tcp_input.c:5012
 tcp_rcv_established+0x1980/0x2bb0 net/ipv4/tcp_input.c:5462
 tcp_v4_do_rcv+0x6d2/0xd90 net/ipv4/tcp_ipv4.c:1477
 sk_backlog_rcv include/net/sock.h:909 [inline]
 __release_sock+0x2dc/0x680 net/core/sock.c:2335
 release_sock+0x99/0x2a0 net/core/sock.c:2850
 sk_stream_wait_memory+0xa8f/0x13a0 net/core/stream.c:149
 tcp_sendmsg_locked+0x1c75/0x6610 net/ipv4/tcp.c:1400
 tcp_sendmsg+0xb2/0x100 net/ipv4/tcp.c:1447
 inet_sendmsg+0x3fc/0x760 net/ipv4/af_inet.c:798
 sock_sendmsg_nosec net/socket.c:629 [inline]
 sock_sendmsg net/socket.c:639 [inline]
 __sys_sendto+0x6c4/0x7e0 net/socket.c:1789
 __do_sys_sendto net/socket.c:1801 [inline]
 __se_sys_sendto net/socket.c:1797 [inline]
 __x64_sys_sendto+0x1a1/0x210 net/socket.c:1797
 do_syscall_64+0x15b/0x230 arch/x86/entry/common.c:287
 entry_SYSCALL_64_after_hwframe+0x44/0xa9
RIP: 0033:0x455a99
RSP: 002b:00007f7799adbc68 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
RAX: ffffffffffffffda RBX: 00007f7799adc6d4 RCX: 0000000000455a99
RDX: 000000000000229f RSI: 0000000020000100 RDI: 0000000000000013
RBP: 000000000072bea0 R08: 0000000000000000 R09: 00000000000000b4
R10: 0000000000000000 R11: 0000000000000246 R12: 00000000ffffffff
R13: 00000000004c0ef1 R14: 00000000004d0de8 R15: 0000000000000000

Uninit was stored to memory at:
 kmsan_save_stack_with_flags mm/kmsan/kmsan.c:282 [inline]
 kmsan_save_stack mm/kmsan/kmsan.c:297 [inline]
 kmsan_internal_chain_origin+0x12b/0x210 mm/kmsan/kmsan.c:689
 kmsan_memcpy_origins+0x11d/0x170 mm/kmsan/kmsan.c:530
 __msan_memcpy+0x109/0x160 mm/kmsan/kmsan_instr.c:413
 skb_split_no_header net/core/skbuff.c:3010 [inline]
 skb_split+0xf91/0x1dd0 net/core/skbuff.c:3051
 tso_fragment net/ipv4/tcp_output.c:1895 [inline]
 tcp_write_xmit+0x21f1/0xb200 net/ipv4/tcp_output.c:2364
 __tcp_push_pending_frames+0x124/0x400 net/ipv4/tcp_output.c:2546
 tcp_sendmsg_locked+0x3f36/0x6610 net/ipv4/tcp.c:1388
 tcp_sendmsg+0xb2/0x100 net/ipv4/tcp.c:1447
 inet_sendmsg+0x3fc/0x760 net/ipv4/af_inet.c:798
 sock_sendmsg_nosec net/socket.c:629 [inline]
 sock_sendmsg net/socket.c:639 [inline]
 __sys_sendto+0x6c4/0x7e0 net/socket.c:1789
 __do_sys_sendto net/socket.c:1801 [inline]
 __se_sys_sendto net/socket.c:1797 [inline]
 __x64_sys_sendto+0x1a1/0x210 net/socket.c:1797
 do_syscall_64+0x15b/0x230 arch/x86/entry/common.c:287
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Uninit was stored to memory at:
 kmsan_save_stack_with_flags mm/kmsan/kmsan.c:282 [inline]
 kmsan_save_stack mm/kmsan/kmsan.c:297 [inline]
 kmsan_internal_chain_origin+0x12b/0x210 mm/kmsan/kmsan.c:689
 kmsan_memcpy_origins+0x11d/0x170 mm/kmsan/kmsan.c:530
 __msan_memcpy+0x109/0x160 mm/kmsan/kmsan_instr.c:413
 skb_split_no_header net/core/skbuff.c:3010 [inline]
 skb_split+0xf91/0x1dd0 net/core/skbuff.c:3051
 tso_fragment net/ipv4/tcp_output.c:1895 [inline]
 tcp_write_xmit+0x21f1/0xb200 net/ipv4/tcp_output.c:2364
 __tcp_push_pending_frames+0x124/0x400 net/ipv4/tcp_output.c:2546
 tcp_sendmsg_locked+0x3f36/0x6610 net/ipv4/tcp.c:1388
 tcp_sendmsg+0xb2/0x100 net/ipv4/tcp.c:1447
 inet_sendmsg+0x3fc/0x760 net/ipv4/af_inet.c:798
 sock_sendmsg_nosec net/socket.c:629 [inline]
 sock_sendmsg net/socket.c:639 [inline]
 __sys_sendto+0x6c4/0x7e0 net/socket.c:1789
 __do_sys_sendto net/socket.c:1801 [inline]
 __se_sys_sendto net/socket.c:1797 [inline]
 __x64_sys_sendto+0x1a1/0x210 net/socket.c:1797
 do_syscall_64+0x15b/0x230 arch/x86/entry/common.c:287
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Uninit was stored to memory at:
 kmsan_save_stack_with_flags mm/kmsan/kmsan.c:282 [inline]
 kmsan_save_stack mm/kmsan/kmsan.c:297 [inline]
 kmsan_internal_chain_origin+0x12b/0x210 mm/kmsan/kmsan.c:689
 kmsan_memcpy_origins+0x11d/0x170 mm/kmsan/kmsan.c:530
 __msan_memcpy+0x109/0x160 mm/kmsan/kmsan_instr.c:413
 skb_split_no_header net/core/skbuff.c:3010 [inline]
 skb_split+0xf91/0x1dd0 net/core/skbuff.c:3051
 tcp_fragment+0xaac/0x20e0 net/ipv4/tcp_output.c:1338
 tso_fragment net/ipv4/tcp_output.c:1868 [inline]
 tcp_write_xmit+0x1ca1/0xb200 net/ipv4/tcp_output.c:2364
 tcp_push_one+0x195/0x230 net/ipv4/tcp_output.c:2560
 tcp_sendmsg_locked+0x400e/0x6610 net/ipv4/tcp.c:1390
 tcp_sendmsg+0xb2/0x100 net/ipv4/tcp.c:1447
 inet_sendmsg+0x3fc/0x760 net/ipv4/af_inet.c:798
 sock_sendmsg_nosec net/socket.c:629 [inline]
 sock_sendmsg net/socket.c:639 [inline]
 __sys_sendto+0x6c4/0x7e0 net/socket.c:1789
 __do_sys_sendto net/socket.c:1801 [inline]
 __se_sys_sendto net/socket.c:1797 [inline]
 __x64_sys_sendto+0x1a1/0x210 net/socket.c:1797
 do_syscall_64+0x15b/0x230 arch/x86/entry/common.c:287
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Uninit was stored to memory at:
 kmsan_save_stack_with_flags mm/kmsan/kmsan.c:282 [inline]
 kmsan_save_stack mm/kmsan/kmsan.c:297 [inline]
 kmsan_internal_chain_origin+0x12b/0x210 mm/kmsan/kmsan.c:689
 __msan_chain_origin+0x69/0xc0 mm/kmsan/kmsan_instr.c:464
 __skb_fill_page_desc include/linux/skbuff.h:1931 [inline]
 skb_fill_page_desc include/linux/skbuff.h:1957 [inline]
 tcp_sendmsg_locked+0x418a/0x6610 net/ipv4/tcp.c:1353
 tcp_sendmsg+0xb2/0x100 net/ipv4/tcp.c:1447
 inet_sendmsg+0x3fc/0x760 net/ipv4/af_inet.c:798
 sock_sendmsg_nosec net/socket.c:629 [inline]
 sock_sendmsg net/socket.c:639 [inline]
 __sys_sendto+0x6c4/0x7e0 net/socket.c:1789
 __do_sys_sendto net/socket.c:1801 [inline]
 __se_sys_sendto net/socket.c:1797 [inline]
 __x64_sys_sendto+0x1a1/0x210 net/socket.c:1797
 do_syscall_64+0x15b/0x230 arch/x86/entry/common.c:287
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Uninit was stored to memory at:
 kmsan_save_stack_with_flags mm/kmsan/kmsan.c:282 [inline]
 kmsan_save_stack mm/kmsan/kmsan.c:297 [inline]
 kmsan_internal_chain_origin+0x12b/0x210 mm/kmsan/kmsan.c:689
 __msan_chain_origin+0x69/0xc0 mm/kmsan/kmsan_instr.c:464
 skb_page_frag_refill+0x494/0x5e0 net/core/sock.c:2211
 sk_page_frag_refill+0xa4/0x350 net/core/sock.c:2231
 tcp_sendmsg_locked+0x2621/0x6610 net/ipv4/tcp.c:1325
 tcp_sendmsg+0xb2/0x100 net/ipv4/tcp.c:1447
 inet_sendmsg+0x3fc/0x760 net/ipv4/af_inet.c:798
 sock_sendmsg_nosec net/socket.c:629 [inline]
 sock_sendmsg net/socket.c:639 [inline]
 __sys_sendto+0x6c4/0x7e0 net/socket.c:1789
 __do_sys_sendto net/socket.c:1801 [inline]
 __se_sys_sendto net/socket.c:1797 [inline]
 __x64_sys_sendto+0x1a1/0x210 net/socket.c:1797
 do_syscall_64+0x15b/0x230 arch/x86/entry/common.c:287
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Uninit was stored to memory at:
 kmsan_save_stack_with_flags mm/kmsan/kmsan.c:282 [inline]
 kmsan_save_stack mm/kmsan/kmsan.c:297 [inline]
 kmsan_internal_chain_origin+0x12b/0x210 mm/kmsan/kmsan.c:689
 __msan_chain_origin+0x69/0xc0 mm/kmsan/kmsan_instr.c:464
 __write_once_size include/linux/compiler.h:224 [inline]
 __list_add include/linux/list.h:66 [inline]
 list_add include/linux/list.h:79 [inline]
 __free_one_page+0x16cb/0x1800 mm/page_alloc.c:876
 free_one_page mm/page_alloc.c:1176 [inline]
 __free_pages_ok+0x870/0x1680 mm/page_alloc.c:1260
 free_compound_page+0x8e/0xc0 mm/page_alloc.c:571
 __put_compound_page mm/swap.c:95 [inline]
 __put_page+0x1bc/0x1e0 mm/swap.c:111
 put_page include/linux/mm.h:874 [inline]
 do_exit+0x31e8/0x3930 kernel/exit.c:912
 do_group_exit+0x1a0/0x360 kernel/exit.c:970
 get_signal+0x1405/0x1ec0 kernel/signal.c:2482
 do_signal+0xb8/0x1d20 arch/x86/kernel/signal.c:810
 exit_to_usermode_loop arch/x86/entry/common.c:162 [inline]
 prepare_exit_to_usermode+0x271/0x3a0 arch/x86/entry/common.c:196
 syscall_return_slowpath+0xe9/0x710 arch/x86/entry/common.c:265
 do_syscall_64+0x1ad/0x230 arch/x86/entry/common.c:290
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Local variable description: ----tlb.i@ldt_arch_exit_mmap
Variable was created at:
 ldt_arch_exit_mmap+0x46/0x160 arch/x86/kernel/ldt.c:302
 arch_exit_mmap arch/x86/include/asm/mmu_context.h:245 [inline]
 exit_mmap+0x410/0x980 mm/mmap.c:3094
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2018/06/24 11:40 https://github.com/google/kmsan.git master 123906095e30 2064fc5c .config console log report ci-upstream-kmsan-gce
* Struck through repros no longer work on HEAD.