memory leak in sctp_send_reset_streams

From: syzbot
Date: Fri May 31 2019 - 17:21:50 EST


Hello,

syzbot found the following crash on:

HEAD commit: 036e3431 Merge git://git.kernel.org/pub/scm/linux/kernel/g..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=153cff12a00000
kernel config: https://syzkaller.appspot.com/x/.config?x=8f0f63a62bb5b13c
dashboard link: https://syzkaller.appspot.com/bug?extid=6ad9c3bd0a218a2ab41d
compiler: gcc (GCC) 9.0.0 20181231 (experimental)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=12561c86a00000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=15b76fd8a00000

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+6ad9c3bd0a218a2ab41d@xxxxxxxxxxxxxxxxxxxxxxxxx

executing program
executing program
executing program
executing program
executing program
BUG: memory leak
unreferenced object 0xffff888123894820 (size 32):
comm "syz-executor045", pid 7267, jiffies 4294943559 (age 13.660s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<00000000c7e71c69>] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline]
[<00000000c7e71c69>] slab_post_alloc_hook mm/slab.h:439 [inline]
[<00000000c7e71c69>] slab_alloc mm/slab.c:3326 [inline]
[<00000000c7e71c69>] __do_kmalloc mm/slab.c:3658 [inline]
[<00000000c7e71c69>] __kmalloc+0x161/0x2c0 mm/slab.c:3669
[<000000003250ed8e>] kmalloc_array include/linux/slab.h:670 [inline]
[<000000003250ed8e>] kcalloc include/linux/slab.h:681 [inline]
[<000000003250ed8e>] sctp_send_reset_streams+0x1ab/0x5a0 net/sctp/stream.c:302
[<00000000cd899c6e>] sctp_setsockopt_reset_streams net/sctp/socket.c:4314 [inline]
[<00000000cd899c6e>] sctp_setsockopt net/sctp/socket.c:4765 [inline]
[<00000000cd899c6e>] sctp_setsockopt+0xc23/0x2bf0 net/sctp/socket.c:4608
[<00000000ff3a21a2>] sock_common_setsockopt+0x38/0x50 net/core/sock.c:3130
[<000000009eb87ae7>] __sys_setsockopt+0x98/0x120 net/socket.c:2078
[<00000000e0ede6ca>] __do_sys_setsockopt net/socket.c:2089 [inline]
[<00000000e0ede6ca>] __se_sys_setsockopt net/socket.c:2086 [inline]
[<00000000e0ede6ca>] __x64_sys_setsockopt+0x26/0x30 net/socket.c:2086
[<00000000c61155f5>] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301
[<00000000e540958c>] entry_SYSCALL_64_after_hwframe+0x44/0xa9

BUG: memory leak
unreferenced object 0xffff888123894980 (size 32):
comm "syz-executor045", pid 7268, jiffies 4294944145 (age 7.800s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<00000000c7e71c69>] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline]
[<00000000c7e71c69>] slab_post_alloc_hook mm/slab.h:439 [inline]
[<00000000c7e71c69>] slab_alloc mm/slab.c:3326 [inline]
[<00000000c7e71c69>] __do_kmalloc mm/slab.c:3658 [inline]
[<00000000c7e71c69>] __kmalloc+0x161/0x2c0 mm/slab.c:3669
[<000000003250ed8e>] kmalloc_array include/linux/slab.h:670 [inline]
[<000000003250ed8e>] kcalloc include/linux/slab.h:681 [inline]
[<000000003250ed8e>] sctp_send_reset_streams+0x1ab/0x5a0 net/sctp/stream.c:302
[<00000000cd899c6e>] sctp_setsockopt_reset_streams net/sctp/socket.c:4314 [inline]
[<00000000cd899c6e>] sctp_setsockopt net/sctp/socket.c:4765 [inline]
[<00000000cd899c6e>] sctp_setsockopt+0xc23/0x2bf0 net/sctp/socket.c:4608
[<00000000ff3a21a2>] sock_common_setsockopt+0x38/0x50 net/core/sock.c:3130
[<000000009eb87ae7>] __sys_setsockopt+0x98/0x120 net/socket.c:2078
[<00000000e0ede6ca>] __do_sys_setsockopt net/socket.c:2089 [inline]
[<00000000e0ede6ca>] __se_sys_setsockopt net/socket.c:2086 [inline]
[<00000000e0ede6ca>] __x64_sys_setsockopt+0x26/0x30 net/socket.c:2086
[<00000000c61155f5>] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301
[<00000000e540958c>] entry_SYSCALL_64_after_hwframe+0x44/0xa9



---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@xxxxxxxxxxxxxxxxx

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this bug, for details see:
https://goo.gl/tpsmEJ#testing-patches