On Wed, May 29, 2019 at 2:28 AM syzbot <syzbot+079bf326b38072f849d9@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote: > > Hello, > > syzbot found the following crash on: > > HEAD commit: cd6c84d8 Linux 5.2-rc2 > git tree: upstream > console output: https://syzkaller.appspot.com/x/log.txt?x=101a184aa00000 > kernel config: https://syzkaller.appspot.com/x/.config?x=64479170dcaf0e11 > dashboard link: https://syzkaller.appspot.com/bug?extid=079bf326b38072f849d9 > compiler: gcc (GCC) 9.0.0 20181231 (experimental) > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=13b5dbbca00000 > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1038444aa00000 > > IMPORTANT: if you fix the bug, please add the following tag to the commit: > Reported-by: syzbot+079bf326b38072f849d9@xxxxxxxxxxxxxxxxxxxxxxxxx > > : Permanently added '10.128.0.127' (ECDSA) to the list of known hosts. > executing program > executing program > BUG: memory leak > unreferenced object 0xffff8881288ca380 (size 64): > comm "softirq", pid 0, jiffies 4294944468 (age 13.410s) > hex dump (first 32 bytes): > 21 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 !N.............. > 28 ae 85 23 81 88 ff ff 00 00 00 00 00 00 00 00 (..#............ > backtrace: > [<0000000054ece54d>] kmemleak_alloc_recursive > include/linux/kmemleak.h:55 [inline] > [<0000000054ece54d>] slab_post_alloc_hook mm/slab.h:439 [inline] > [<0000000054ece54d>] slab_alloc mm/slab.c:3326 [inline] > [<0000000054ece54d>] kmem_cache_alloc+0x134/0x270 mm/slab.c:3488 > [<00000000d992ea84>] sctp_bucket_create net/sctp/socket.c:8395 [inline] > [<00000000d992ea84>] sctp_get_port_local+0x189/0x5b0 > net/sctp/socket.c:8142 > [<0000000099206d90>] sctp_do_bind+0xcc/0x1e0 net/sctp/socket.c:402 > [<00000000b8795757>] sctp_bind+0x44/0x70 net/sctp/socket.c:302 > [<00000000672a44aa>] inet6_bind+0x40/0xb7 net/ipv6/af_inet6.c:445 > [<0000000001400e1c>] __sys_bind+0x11c/0x140 net/socket.c:1659 > [<00000000e69e8036>] __do_sys_bind net/socket.c:1670 [inline] > [<00000000e69e8036>] __se_sys_bind net/socket.c:1668 [inline] > [<00000000e69e8036>] __x64_sys_bind+0x1e/0x30 net/socket.c:1668 > [<000000001644bb1f>] do_syscall_64+0x76/0x1a0 > arch/x86/entry/common.c:301 > [<00000000199a1ea2>] entry_SYSCALL_64_after_hwframe+0x44/0xa9 > will post a fix for this: @@ -4816,6 +4816,7 @@ static int sctp_setsockopt(struct sock *sk, int level, int optname, static int sctp_connect(struct sock *sk, struct sockaddr *addr, int addr_len, int flags) { + struct sctp_bind_addr *bp = &sctp_sk(sk)->ep->base.bind_addr; struct inet_sock *inet = inet_sk(sk); struct sctp_af *af; int err = 0; @@ -4826,12 +4827,13 @@ static int sctp_connect(struct sock *sk, struct sockaddr *addr, addr, addr_len); /* We may need to bind the socket. */ - if (!inet->inet_num) { + if (!bp->port) { if (sk->sk_prot->get_port(sk, 0)) { release_sock(sk); return -EAGAIN; } inet->inet_sport = htons(inet->inet_num); + bp->port = inet->inet_sport; } > > > --- > 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@xxxxxxxxxxxxxxxx. > > 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