* memory leak in v2_read_file_info
@ 2020-12-22 10:24 syzbot
2020-12-22 11:13 ` Jan Kara
0 siblings, 1 reply; 2+ messages in thread
From: syzbot @ 2020-12-22 10:24 UTC (permalink / raw)
To: jack, linux-kernel, syzkaller-bugs
Hello,
syzbot found the following issue on:
HEAD commit: 8653b778 Merge tag 'clk-for-linus' of git://git.kernel.org..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=153fc4db500000
kernel config: https://syzkaller.appspot.com/x/.config?x=faf2996955887e91
dashboard link: https://syzkaller.appspot.com/bug?extid=77779c9b52ab78154b08
compiler: gcc (GCC) 10.1.0-syz 20200507
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11c44960d00000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=13bc8c0b500000
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+77779c9b52ab78154b08@syzkaller.appspotmail.com
BUG: memory leak
unreferenced object 0xffff888110974f00 (size 64):
comm "syz-executor849", pid 8516, jiffies 4294942501 (age 13.960s)
hex dump (first 32 bytes):
00 30 ee 0d 81 88 ff ff 00 00 00 00 00 00 00 00 .0..............
00 00 00 00 00 00 00 00 0a 00 00 00 48 00 00 00 ............H...
backtrace:
[<0000000018aa1939>] kmalloc include/linux/slab.h:552 [inline]
[<0000000018aa1939>] v2_read_file_info+0x1ae/0x430 fs/quota/quota_v2.c:122
[<000000001061252b>] dquot_load_quota_sb+0x351/0x650 fs/quota/dquot.c:2387
[<000000006c1f70f9>] dquot_load_quota_inode fs/quota/dquot.c:2423 [inline]
[<000000006c1f70f9>] dquot_load_quota_inode+0xda/0x160 fs/quota/dquot.c:2415
[<00000000abace495>] ext4_quota_enable fs/ext4/super.c:6362 [inline]
[<00000000abace495>] ext4_enable_quotas+0x1b2/0x2f0 fs/ext4/super.c:6388
[<00000000b6d6a975>] ext4_fill_super+0x3bc5/0x5ac0 fs/ext4/super.c:5046
[<0000000003a869bd>] mount_bdev+0x223/0x260 fs/super.c:1366
[<000000002138e18c>] legacy_get_tree+0x2b/0x90 fs/fs_context.c:592
[<0000000096e90d3d>] vfs_get_tree+0x28/0x100 fs/super.c:1496
[<00000000eddeeb8e>] do_new_mount fs/namespace.c:2875 [inline]
[<00000000eddeeb8e>] path_mount+0xc5e/0x1170 fs/namespace.c:3205
[<00000000c52e2f18>] do_mount fs/namespace.c:3218 [inline]
[<00000000c52e2f18>] __do_sys_mount fs/namespace.c:3426 [inline]
[<00000000c52e2f18>] __se_sys_mount fs/namespace.c:3403 [inline]
[<00000000c52e2f18>] __x64_sys_mount+0x18e/0x1d0 fs/namespace.c:3403
[<00000000e70a31f4>] do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
[<000000007f651b8c>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
---
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@googlegroups.com.
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
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: memory leak in v2_read_file_info
2020-12-22 10:24 memory leak in v2_read_file_info syzbot
@ 2020-12-22 11:13 ` Jan Kara
0 siblings, 0 replies; 2+ messages in thread
From: Jan Kara @ 2020-12-22 11:13 UTC (permalink / raw)
To: syzbot; +Cc: jack, linux-kernel, syzkaller-bugs
[-- Attachment #1: Type: text/plain, Size: 3063 bytes --]
Hello,
attached patch should fix this. I'll queue it to my tree.
Honza
On Tue 22-12-20 02:24:18, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 8653b778 Merge tag 'clk-for-linus' of git://git.kernel.org..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=153fc4db500000
> kernel config: https://syzkaller.appspot.com/x/.config?x=faf2996955887e91
> dashboard link: https://syzkaller.appspot.com/bug?extid=77779c9b52ab78154b08
> compiler: gcc (GCC) 10.1.0-syz 20200507
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11c44960d00000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=13bc8c0b500000
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+77779c9b52ab78154b08@syzkaller.appspotmail.com
>
> BUG: memory leak
> unreferenced object 0xffff888110974f00 (size 64):
> comm "syz-executor849", pid 8516, jiffies 4294942501 (age 13.960s)
> hex dump (first 32 bytes):
> 00 30 ee 0d 81 88 ff ff 00 00 00 00 00 00 00 00 .0..............
> 00 00 00 00 00 00 00 00 0a 00 00 00 48 00 00 00 ............H...
> backtrace:
> [<0000000018aa1939>] kmalloc include/linux/slab.h:552 [inline]
> [<0000000018aa1939>] v2_read_file_info+0x1ae/0x430 fs/quota/quota_v2.c:122
> [<000000001061252b>] dquot_load_quota_sb+0x351/0x650 fs/quota/dquot.c:2387
> [<000000006c1f70f9>] dquot_load_quota_inode fs/quota/dquot.c:2423 [inline]
> [<000000006c1f70f9>] dquot_load_quota_inode+0xda/0x160 fs/quota/dquot.c:2415
> [<00000000abace495>] ext4_quota_enable fs/ext4/super.c:6362 [inline]
> [<00000000abace495>] ext4_enable_quotas+0x1b2/0x2f0 fs/ext4/super.c:6388
> [<00000000b6d6a975>] ext4_fill_super+0x3bc5/0x5ac0 fs/ext4/super.c:5046
> [<0000000003a869bd>] mount_bdev+0x223/0x260 fs/super.c:1366
> [<000000002138e18c>] legacy_get_tree+0x2b/0x90 fs/fs_context.c:592
> [<0000000096e90d3d>] vfs_get_tree+0x28/0x100 fs/super.c:1496
> [<00000000eddeeb8e>] do_new_mount fs/namespace.c:2875 [inline]
> [<00000000eddeeb8e>] path_mount+0xc5e/0x1170 fs/namespace.c:3205
> [<00000000c52e2f18>] do_mount fs/namespace.c:3218 [inline]
> [<00000000c52e2f18>] __do_sys_mount fs/namespace.c:3426 [inline]
> [<00000000c52e2f18>] __se_sys_mount fs/namespace.c:3403 [inline]
> [<00000000c52e2f18>] __x64_sys_mount+0x18e/0x1d0 fs/namespace.c:3403
> [<00000000e70a31f4>] do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
> [<000000007f651b8c>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
>
>
>
> ---
> 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@googlegroups.com.
>
> 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
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
[-- Attachment #2: 0001-quota-Fix-memory-leak-when-handling-corrupted-quota-.patch --]
[-- Type: text/x-patch, Size: 1625 bytes --]
From 4d76181dc109d8a0c8ce74325ee5e885734d5ab8 Mon Sep 17 00:00:00 2001
From: Jan Kara <jack@suse.cz>
Date: Tue, 22 Dec 2020 12:09:53 +0100
Subject: [PATCH] quota: Fix memory leak when handling corrupted quota file
When checking corrupted quota file we can bail out and leak allocated
info structure. Properly free info structure on error return.
Reported-by: syzbot+77779c9b52ab78154b08@syzkaller.appspotmail.com
Fixes: 11c514a99bb9 ("quota: Sanity-check quota file headers on load")
Signed-off-by: Jan Kara <jack@suse.cz>
---
fs/quota/quota_v2.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/fs/quota/quota_v2.c b/fs/quota/quota_v2.c
index c21106557a37..b1467f3921c2 100644
--- a/fs/quota/quota_v2.c
+++ b/fs/quota/quota_v2.c
@@ -164,19 +164,24 @@ static int v2_read_file_info(struct super_block *sb, int type)
quota_error(sb, "Number of blocks too big for quota file size (%llu > %llu).",
(loff_t)qinfo->dqi_blocks << qinfo->dqi_blocksize_bits,
i_size_read(sb_dqopt(sb)->files[type]));
- goto out;
+ goto out_free;
}
if (qinfo->dqi_free_blk >= qinfo->dqi_blocks) {
quota_error(sb, "Free block number too big (%u >= %u).",
qinfo->dqi_free_blk, qinfo->dqi_blocks);
- goto out;
+ goto out_free;
}
if (qinfo->dqi_free_entry >= qinfo->dqi_blocks) {
quota_error(sb, "Block with free entry too big (%u >= %u).",
qinfo->dqi_free_entry, qinfo->dqi_blocks);
- goto out;
+ goto out_free;
}
ret = 0;
+out_free:
+ if (ret) {
+ kfree(info->dqi_priv);
+ info->dqi_priv = NULL;
+ }
out:
up_read(&dqopt->dqio_sem);
return ret;
--
2.16.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-12-22 11:14 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-22 10:24 memory leak in v2_read_file_info syzbot
2020-12-22 11:13 ` Jan Kara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox