[syzbot] memory leak in kernfs_fop_open

From: syzbot
Date: Wed Oct 12 2022 - 13:01:25 EST


Hello,

syzbot found the following issue on:

HEAD commit: e8bc52cb8df8 Merge tag 'driver-core-6.1-rc1' of git://git...
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=15adbd1c880000
kernel config: https://syzkaller.appspot.com/x/.config?x=d97b00ebbd65d751
dashboard link: https://syzkaller.appspot.com/bug?extid=141cc7ede4844354c9c5
compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=127fb348880000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=140790e8880000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/c383c6221def/disk-e8bc52cb.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/212eadb7e8f5/vmlinux-e8bc52cb.xz

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

BUG: memory leak
unreferenced object 0xffff88810bfdeb80 (size 96):
comm "udevd", pid 2966, jiffies 4294946369 (age 13.650s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<ffffffff816f6911>] kmalloc include/linux/slab.h:600 [inline]
[<ffffffff816f6911>] kzalloc include/linux/slab.h:733 [inline]
[<ffffffff816f6911>] kernfs_get_open_node fs/kernfs/file.c:568 [inline]
[<ffffffff816f6911>] kernfs_fop_open+0x4f1/0x5b0 fs/kernfs/file.c:736
[<ffffffff815d909f>] do_dentry_open+0x2ff/0x7c0 fs/open.c:882
[<ffffffff815ff9b6>] do_open fs/namei.c:3557 [inline]
[<ffffffff815ff9b6>] path_openat+0x1756/0x1be0 fs/namei.c:3691
[<ffffffff816026e1>] do_filp_open+0xc1/0x1b0 fs/namei.c:3718
[<ffffffff815dca0d>] do_sys_openat2+0xed/0x260 fs/open.c:1310
[<ffffffff815dd45f>] do_sys_open fs/open.c:1326 [inline]
[<ffffffff815dd45f>] __do_sys_openat fs/open.c:1342 [inline]
[<ffffffff815dd45f>] __se_sys_openat fs/open.c:1337 [inline]
[<ffffffff815dd45f>] __x64_sys_openat+0x7f/0xe0 fs/open.c:1337
[<ffffffff845fc895>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]
[<ffffffff845fc895>] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
[<ffffffff84800087>] entry_SYSCALL_64_after_hwframe+0x63/0xcd

BUG: memory leak
unreferenced object 0xffff88810bfdeb00 (size 96):
comm "udevd", pid 3607, jiffies 4294946461 (age 12.730s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<ffffffff816f6911>] kmalloc include/linux/slab.h:600 [inline]
[<ffffffff816f6911>] kzalloc include/linux/slab.h:733 [inline]
[<ffffffff816f6911>] kernfs_get_open_node fs/kernfs/file.c:568 [inline]
[<ffffffff816f6911>] kernfs_fop_open+0x4f1/0x5b0 fs/kernfs/file.c:736
[<ffffffff815d909f>] do_dentry_open+0x2ff/0x7c0 fs/open.c:882
[<ffffffff815ff9b6>] do_open fs/namei.c:3557 [inline]
[<ffffffff815ff9b6>] path_openat+0x1756/0x1be0 fs/namei.c:3691
[<ffffffff816026e1>] do_filp_open+0xc1/0x1b0 fs/namei.c:3718
[<ffffffff815dca0d>] do_sys_openat2+0xed/0x260 fs/open.c:1310
[<ffffffff815dd45f>] do_sys_open fs/open.c:1326 [inline]
[<ffffffff815dd45f>] __do_sys_openat fs/open.c:1342 [inline]
[<ffffffff815dd45f>] __se_sys_openat fs/open.c:1337 [inline]
[<ffffffff815dd45f>] __x64_sys_openat+0x7f/0xe0 fs/open.c:1337
[<ffffffff845fc895>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]
[<ffffffff845fc895>] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
[<ffffffff84800087>] entry_SYSCALL_64_after_hwframe+0x63/0xcd

BUG: memory leak
unreferenced object 0xffff88810bfdea80 (size 96):
comm "udevd", pid 3607, jiffies 4294946461 (age 12.730s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<ffffffff816f6911>] kmalloc include/linux/slab.h:600 [inline]
[<ffffffff816f6911>] kzalloc include/linux/slab.h:733 [inline]
[<ffffffff816f6911>] kernfs_get_open_node fs/kernfs/file.c:568 [inline]
[<ffffffff816f6911>] kernfs_fop_open+0x4f1/0x5b0 fs/kernfs/file.c:736
[<ffffffff815d909f>] do_dentry_open+0x2ff/0x7c0 fs/open.c:882
[<ffffffff815ff9b6>] do_open fs/namei.c:3557 [inline]
[<ffffffff815ff9b6>] path_openat+0x1756/0x1be0 fs/namei.c:3691
[<ffffffff816026e1>] do_filp_open+0xc1/0x1b0 fs/namei.c:3718
[<ffffffff815dca0d>] do_sys_openat2+0xed/0x260 fs/open.c:1310
[<ffffffff815dd45f>] do_sys_open fs/open.c:1326 [inline]
[<ffffffff815dd45f>] __do_sys_openat fs/open.c:1342 [inline]
[<ffffffff815dd45f>] __se_sys_openat fs/open.c:1337 [inline]
[<ffffffff815dd45f>] __x64_sys_openat+0x7f/0xe0 fs/open.c:1337
[<ffffffff845fc895>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]
[<ffffffff845fc895>] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
[<ffffffff84800087>] entry_SYSCALL_64_after_hwframe+0x63/0xcd

BUG: memory leak
unreferenced object 0xffff88810bfdea00 (size 96):
comm "udevd", pid 3607, jiffies 4294946461 (age 12.740s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<ffffffff816f6911>] kmalloc include/linux/slab.h:600 [inline]
[<ffffffff816f6911>] kzalloc include/linux/slab.h:733 [inline]
[<ffffffff816f6911>] kernfs_get_open_node fs/kernfs/file.c:568 [inline]
[<ffffffff816f6911>] kernfs_fop_open+0x4f1/0x5b0 fs/kernfs/file.c:736
[<ffffffff815d909f>] do_dentry_open+0x2ff/0x7c0 fs/open.c:882
[<ffffffff815ff9b6>] do_open fs/namei.c:3557 [inline]
[<ffffffff815ff9b6>] path_openat+0x1756/0x1be0 fs/namei.c:3691
[<ffffffff816026e1>] do_filp_open+0xc1/0x1b0 fs/namei.c:3718
[<ffffffff815dca0d>] do_sys_openat2+0xed/0x260 fs/open.c:1310
[<ffffffff815dd45f>] do_sys_open fs/open.c:1326 [inline]
[<ffffffff815dd45f>] __do_sys_openat fs/open.c:1342 [inline]
[<ffffffff815dd45f>] __se_sys_openat fs/open.c:1337 [inline]
[<ffffffff815dd45f>] __x64_sys_openat+0x7f/0xe0 fs/open.c:1337
[<ffffffff845fc895>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]
[<ffffffff845fc895>] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
[<ffffffff84800087>] entry_SYSCALL_64_after_hwframe+0x63/0xcd

BUG: memory leak
unreferenced object 0xffff88810bfde980 (size 96):
comm "udevd", pid 3607, jiffies 4294946461 (age 12.740s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<ffffffff816f6911>] kmalloc include/linux/slab.h:600 [inline]
[<ffffffff816f6911>] kzalloc include/linux/slab.h:733 [inline]
[<ffffffff816f6911>] kernfs_get_open_node fs/kernfs/file.c:568 [inline]
[<ffffffff816f6911>] kernfs_fop_open+0x4f1/0x5b0 fs/kernfs/file.c:736
[<ffffffff815d909f>] do_dentry_open+0x2ff/0x7c0 fs/open.c:882
[<ffffffff815ff9b6>] do_open fs/namei.c:3557 [inline]
[<ffffffff815ff9b6>] path_openat+0x1756/0x1be0 fs/namei.c:3691
[<ffffffff816026e1>] do_filp_open+0xc1/0x1b0 fs/namei.c:3718
[<ffffffff815dca0d>] do_sys_openat2+0xed/0x260 fs/open.c:1310
[<ffffffff815dd45f>] do_sys_open fs/open.c:1326 [inline]
[<ffffffff815dd45f>] __do_sys_openat fs/open.c:1342 [inline]
[<ffffffff815dd45f>] __se_sys_openat fs/open.c:1337 [inline]
[<ffffffff815dd45f>] __x64_sys_openat+0x7f/0xe0 fs/open.c:1337
[<ffffffff845fc895>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]
[<ffffffff845fc895>] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
[<ffffffff84800087>] entry_SYSCALL_64_after_hwframe+0x63/0xcd

[ 104.674978][


---
This report 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 issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches