diff mbox series

ext4: fix leaking sysfs kobject after failed mount

Message ID 20200922162456.93657-1-ebiggers@kernel.org
State Awaiting Upstream
Headers show
Series ext4: fix leaking sysfs kobject after failed mount | expand

Commit Message

Eric Biggers Sept. 22, 2020, 4:24 p.m. UTC
From: Eric Biggers <ebiggers@google.com>

ext4_unregister_sysfs() only deletes the kobject.  The reference to it
needs to be put separately, like ext4_put_super() does.

This addresses the syzbot report
"memory leak in kobject_set_name_vargs (3)"
(https://syzkaller.appspot.com/bug?extid=9f864abad79fae7c17e1).

Reported-by: syzbot+9f864abad79fae7c17e1@syzkaller.appspotmail.com
Fixes: 72ba74508b28 ("ext4: release sysfs kobject when failing to enable quotas on mount")
Cc: stable@vger.kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
---
 fs/ext4/super.c | 1 +
 1 file changed, 1 insertion(+)


base-commit: ba4f184e126b751d1bffad5897f263108befc780

Comments

Jan Kara Sept. 24, 2020, 9:08 a.m. UTC | #1
On Tue 22-09-20 09:24:56, Eric Biggers wrote:
> From: Eric Biggers <ebiggers@google.com>
> 
> ext4_unregister_sysfs() only deletes the kobject.  The reference to it
> needs to be put separately, like ext4_put_super() does.
> 
> This addresses the syzbot report
> "memory leak in kobject_set_name_vargs (3)"
> (https://syzkaller.appspot.com/bug?extid=9f864abad79fae7c17e1).
> 
> Reported-by: syzbot+9f864abad79fae7c17e1@syzkaller.appspotmail.com
> Fixes: 72ba74508b28 ("ext4: release sysfs kobject when failing to enable quotas on mount")
> Cc: stable@vger.kernel.org
> Signed-off-by: Eric Biggers <ebiggers@google.com>

Looks good. You can add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
>  fs/ext4/super.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index ea425b49b345..41953b86ffe3 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -4872,6 +4872,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
>  
>  failed_mount8:
>  	ext4_unregister_sysfs(sb);
> +	kobject_put(&sbi->s_kobj);
>  failed_mount7:
>  	ext4_unregister_li_request(sb);
>  failed_mount6:
> 
> base-commit: ba4f184e126b751d1bffad5897f263108befc780
> -- 
> 2.28.0
>
Theodore Ts'o Oct. 3, 2020, 4:56 a.m. UTC | #2
On Thu, Sep 24, 2020 at 11:08:59AM +0200, Jan Kara wrote:
> On Tue 22-09-20 09:24:56, Eric Biggers wrote:
> > From: Eric Biggers <ebiggers@google.com>
> > 
> > ext4_unregister_sysfs() only deletes the kobject.  The reference to it
> > needs to be put separately, like ext4_put_super() does.
> > 
> > This addresses the syzbot report
> > "memory leak in kobject_set_name_vargs (3)"
> > (https://syzkaller.appspot.com/bug?extid=9f864abad79fae7c17e1).
> > 
> > Reported-by: syzbot+9f864abad79fae7c17e1@syzkaller.appspotmail.com
> > Fixes: 72ba74508b28 ("ext4: release sysfs kobject when failing to enable quotas on mount")
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Eric Biggers <ebiggers@google.com>
> 
> Looks good. You can add:
> 
> Reviewed-by: Jan Kara <jack@suse.cz>

Thanks, applied.

					- Ted
diff mbox series

Patch

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index ea425b49b345..41953b86ffe3 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -4872,6 +4872,7 @@  static int ext4_fill_super(struct super_block *sb, void *data, int silent)
 
 failed_mount8:
 	ext4_unregister_sysfs(sb);
+	kobject_put(&sbi->s_kobj);
 failed_mount7:
 	ext4_unregister_li_request(sb);
 failed_mount6: