Skip to content

syzkaller: divide error in mptcp_set_rcvlowat #443

@cpaasch

Description

@cpaasch

syzkaller-id: 9facae10350754b5068f72085c4c765aacc5391f

HEAD: 6a1b099

Crash:

divide error: 0000 [#1] PREEMPT SMP
CPU: 1 PID: 17708 Comm: syz-executor.2 Not tainted 6.6.0-rc2-g6a1b099dc979 #51
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2.el7 04/01/2014
RIP: 0010:mptcp_set_rcvlowat+0x118/0x200 include/net/tcp.h:1447
Code: 0f b6 8e e8 0a 00 00 49 63 c7 48 c1 e0 08 48 89 c2 48 c1 ea 20 74 11 31 d2 48 f7 f1 48 89 c3 eb 0d e8 1c 3a c2 fe eb 34 31 d2 <f7> f1 89 c3 41 8b ae 38 02 00 00 89 ef 89 de e8 c4 3b c2 fe 39 dd
RSP: 0018:ffffc9000195fd80 EFLAGS: 00010246
RAX: 0000000030000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000300000 R08: ffffffff82614b18 R09: ffffffff81d29965
R10: 000000000000003b R11: ffffffff82614a30 R12: ffff888016a6a340
R13: 0000000000000000 R14: ffff888016a6a340 R15: 0000000000300000
FS:  00007fa8d2944640(0000) GS:ffff88807dc80000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000006bd988 CR3: 000000001c05b001 CR4: 0000000000370ee0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
lo: entered allmulticast mode
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 sk_setsockopt+0x13bf/0x1af0 net/core/sock.c:1289
IPVS: You probably need to specify IP address on multicast interface.
 mptcp_setsockopt+0x14c5/0x2570 net/mptcp/sockopt.c:354
 __sys_setsockopt+0x16b/0x1d0 net/socket.c:2308
 __do_sys_setsockopt net/socket.c:2319 [inline]
 __se_sys_setsockopt net/socket.c:2316 [inline]
 __x64_sys_setsockopt+0x23/0x30 net/socket.c:2316
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x47/0xa0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x6e/0xd8
RIP: 0033:0x7fa8d36166a9
Code: 5c c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 4f 37 0d 00 f7 d8 64 89 01 48
RSP: 002b:00007fa8d2943cd8 EFLAGS: 00000246 ORIG_RAX: 0000000000000036
RAX: ffffffffffffffda RBX: 00000000006bbf80 RCX: 00007fa8d36166a9
RDX: 0000000000000012 RSI: 0000000000000001 RDI: 0000000000000003
RBP: 0000000000000000 R08: 0000000000000004 R09: 0000000000000000
R10: 0000000020000100 R11: 0000000000000246 R12: 00000000006bbf8c
R13: fffffffffffffea8 R14: 00000000006bbf80 R15: 000000000001fe40
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:mptcp_set_rcvlowat+0x118/0x200 include/net/tcp.h:1447
Code: 0f b6 8e e8 0a 00 00 49 63 c7 48 c1 e0 08 48 89 c2 48 c1 ea 20 74 11 31 d2 48 f7 f1 48 89 c3 eb 0d e8 1c 3a c2 fe eb 34 31 d2 <f7> f1 89 c3 41 8b ae 38 02 00 00 89 ef 89 de e8 c4 3b c2 fe 39 dd
RSP: 0018:ffffc9000195fd80 EFLAGS: 00010246
RAX: 0000000030000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000300000 R08: ffffffff82614b18 R09: ffffffff81d29965
R10: 000000000000003b R11: ffffffff82614a30 R12: ffff888016a6a340
R13: 0000000000000000 R14: ffff888016a6a340 R15: 0000000000300000
FS:  00007fa8d2944640(0000) GS:ffff88807dc80000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000006bd988 CR3: 000000001c05b001 CR4: 0000000000370ee0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
IPVS: sync thread started: state = MASTER, mcast_ifn = lo, syncid = 0, id = 0
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	0f b6 8e e8 0a 00 00 	movzbl 0xae8(%rsi),%ecx
   7:	49 63 c7             	movslq %r15d,%rax
   a:	48 c1 e0 08          	shl    $0x8,%rax
   e:	48 89 c2             	mov    %rax,%rdx
  11:	48 c1 ea 20          	shr    $0x20,%rdx
  15:	74 11                	je     0x28
  17:	31 d2                	xor    %edx,%edx
  19:	48 f7 f1             	div    %rcx
  1c:	48 89 c3             	mov    %rax,%rbx
  1f:	eb 0d                	jmp    0x2e
  21:	e8 1c 3a c2 fe       	callq  0xfec23a42
  26:	eb 34                	jmp    0x5c
  28:	31 d2                	xor    %edx,%edx
* 2a:	f7 f1                	div    %ecx <-- trapping instruction
  2c:	89 c3                	mov    %eax,%ebx
  2e:	41 8b ae 38 02 00 00 	mov    0x238(%r14),%ebp
  35:	89 ef                	mov    %ebp,%edi
  37:	89 de                	mov    %ebx,%esi
  39:	e8 c4 3b c2 fe       	callq  0xfec23c02
  3e:	39 dd                	cmp    %ebx,%ebp

Kconfig:
Kconfig_k5_lockdep.txt

Reproducer:

# {Threaded:true Repeat:true RepeatTimes:0 Procs:8 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:false HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}
unshare(0x40000400)
socket$igmp6(0xa, 0x3, 0x2)
socket$igmp6(0xa, 0x3, 0x2)
socket$inet6_mptcp(0xa, 0x1, 0x106)
socket$inet(0x2, 0x1, 0x0) (async)
r0 = socket$inet(0x2, 0x1, 0x0)
setsockopt$sock_int(r0, 0x1, 0x12, &(0x7f0000000140)=0x636bd5ca, 0x4)

C-repro available.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions