Re: memory leak in create_pipe_files

From: syzbot
Date: Tue Feb 02 2021 - 22:59:22 EST


syzbot has found a reproducer for the following issue on:

HEAD commit: 3aaf0a27 Merge tag 'clang-format-for-linux-v5.11-rc7' of g..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=15d87364d00000
kernel config: https://syzkaller.appspot.com/x/.config?x=b7edd79f26f7c0c3
dashboard link: https://syzkaller.appspot.com/bug?extid=6a137efd811917e8b53c
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=10df828cd00000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=12c4f2f8d00000

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

Warning: Permanently added '10.128.10.43' (ECDSA) to the list of known hosts.
executing program
executing program
BUG: memory leak
unreferenced object 0xffff888110f47600 (size 232):
comm "kworker/u4:1", pid 8442, jiffies 4294942490 (age 13.540s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
60 2a 04 01 81 88 ff ff 80 2d 37 0f 81 88 ff ff `*.......-7.....
backtrace:
[<000000007ea4ba2d>] kmem_cache_zalloc include/linux/slab.h:672 [inline]
[<000000007ea4ba2d>] __alloc_file+0x1f/0xf0 fs/file_table.c:101
[<00000000cdcab42a>] alloc_empty_file+0x69/0x120 fs/file_table.c:150
[<00000000ca09bf0f>] alloc_file+0x33/0x1b0 fs/file_table.c:192
[<00000000c44b2f75>] alloc_file_pseudo+0xb2/0x140 fs/file_table.c:232
[<00000000a7d8ad8d>] create_pipe_files+0x138/0x2e0 fs/pipe.c:911
[<000000007cde2906>] umd_setup+0x33/0x220 kernel/usermode_driver.c:104
[<00000000566c5ffa>] call_usermodehelper_exec_async+0xb4/0x1b0 kernel/umh.c:101
[<00000000f26cfa20>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:296

BUG: memory leak
unreferenced object 0xffff888113186300 (size 232):
comm "kworker/u4:1", pid 8442, jiffies 4294942490 (age 13.540s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
60 2a 04 01 81 88 ff ff 00 d6 13 0f 81 88 ff ff `*..............
backtrace:
[<000000007ea4ba2d>] kmem_cache_zalloc include/linux/slab.h:672 [inline]
[<000000007ea4ba2d>] __alloc_file+0x1f/0xf0 fs/file_table.c:101
[<00000000cdcab42a>] alloc_empty_file+0x69/0x120 fs/file_table.c:150
[<00000000ca09bf0f>] alloc_file+0x33/0x1b0 fs/file_table.c:192
[<0000000053d2fba9>] alloc_file_clone+0x22/0x70 fs/file_table.c:244
[<000000002475fc17>] create_pipe_files+0x182/0x2e0 fs/pipe.c:922
[<00000000bcdcee57>] umd_setup+0xad/0x220 kernel/usermode_driver.c:115
[<00000000566c5ffa>] call_usermodehelper_exec_async+0xb4/0x1b0 kernel/umh.c:101
[<00000000f26cfa20>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:296