Re: memory leak in new_inode_pseudo (2)

From: syzbot
Date: Tue Jul 16 2019 - 04:28:09 EST


syzbot has found a reproducer for the following crash on:

HEAD commit: be8454af Merge tag 'drm-next-2019-07-16' of git://anongit...
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=13d5f750600000
kernel config: https://syzkaller.appspot.com/x/.config?x=d23a1a7bf85c5250
dashboard link: https://syzkaller.appspot.com/bug?extid=e682cca30bc101a4d9d9
compiler: gcc (GCC) 9.0.0 20181231 (experimental)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=155c5800600000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1738f800600000

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

executing program
executing program
executing program
executing program
BUG: memory leak
unreferenced object 0xffff888128ea0980 (size 768):
comm "syz-executor303", pid 7044, jiffies 4294943526 (age 13.490s)
hex dump (first 32 bytes):
01 00 00 00 01 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:
[<000000005ba542b8>] kmemleak_alloc_recursive include/linux/kmemleak.h:43 [inline]
[<000000005ba542b8>] slab_post_alloc_hook mm/slab.h:522 [inline]
[<000000005ba542b8>] slab_alloc mm/slab.c:3319 [inline]
[<000000005ba542b8>] kmem_cache_alloc+0x13f/0x2c0 mm/slab.c:3483
[<000000006532a1e9>] sock_alloc_inode+0x1c/0xa0 net/socket.c:238
[<0000000014ddc967>] alloc_inode+0x2c/0xe0 fs/inode.c:227
[<0000000056541455>] new_inode_pseudo+0x18/0x70 fs/inode.c:916
[<000000003b5b5444>] sock_alloc+0x1c/0x90 net/socket.c:554
[<00000000e623b353>] __sock_create+0x8f/0x250 net/socket.c:1378
[<000000000e094708>] sock_create_kern+0x3b/0x50 net/socket.c:1483
[<000000009fe4f64f>] smc_create+0xae/0x160 net/smc/af_smc.c:1975
[<0000000056be84a7>] __sock_create+0x164/0x250 net/socket.c:1414
[<000000005915e5fe>] sock_create net/socket.c:1465 [inline]
[<000000005915e5fe>] __sys_socket+0x69/0x110 net/socket.c:1507
[<00000000afa837b2>] __do_sys_socket net/socket.c:1516 [inline]
[<00000000afa837b2>] __se_sys_socket net/socket.c:1514 [inline]
[<00000000afa837b2>] __x64_sys_socket+0x1e/0x30 net/socket.c:1514
[<00000000d0addad1>] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:296
[<000000004e8e7c22>] entry_SYSCALL_64_after_hwframe+0x44/0xa9

BUG: memory leak
unreferenced object 0xffff88811faeeab8 (size 56):
comm "syz-executor303", pid 7044, jiffies 4294943526 (age 13.490s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 0a ea 28 81 88 ff ff d0 ea ae 1f 81 88 ff ff ...(............
backtrace:
[<000000005ba542b8>] kmemleak_alloc_recursive include/linux/kmemleak.h:43 [inline]
[<000000005ba542b8>] slab_post_alloc_hook mm/slab.h:522 [inline]
[<000000005ba542b8>] slab_alloc mm/slab.c:3319 [inline]
[<000000005ba542b8>] kmem_cache_alloc+0x13f/0x2c0 mm/slab.c:3483
[<000000008ca63096>] kmem_cache_zalloc include/linux/slab.h:738 [inline]
[<000000008ca63096>] lsm_inode_alloc security/security.c:522 [inline]
[<000000008ca63096>] security_inode_alloc+0x33/0xb0 security/security.c:875
[<00000000b335d930>] inode_init_always+0x108/0x200 fs/inode.c:169
[<0000000015dcffb3>] alloc_inode+0x49/0xe0 fs/inode.c:234
[<0000000056541455>] new_inode_pseudo+0x18/0x70 fs/inode.c:916
[<000000003b5b5444>] sock_alloc+0x1c/0x90 net/socket.c:554
[<00000000e623b353>] __sock_create+0x8f/0x250 net/socket.c:1378
[<000000000e094708>] sock_create_kern+0x3b/0x50 net/socket.c:1483
[<000000009fe4f64f>] smc_create+0xae/0x160 net/smc/af_smc.c:1975
[<0000000056be84a7>] __sock_create+0x164/0x250 net/socket.c:1414
[<000000005915e5fe>] sock_create net/socket.c:1465 [inline]
[<000000005915e5fe>] __sys_socket+0x69/0x110 net/socket.c:1507
[<00000000afa837b2>] __do_sys_socket net/socket.c:1516 [inline]
[<00000000afa837b2>] __se_sys_socket net/socket.c:1514 [inline]
[<00000000afa837b2>] __x64_sys_socket+0x1e/0x30 net/socket.c:1514
[<00000000d0addad1>] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:296
[<000000004e8e7c22>] entry_SYSCALL_64_after_hwframe+0x44/0xa9