From: Ritesh Harjani <ritesh.list@gmail.com> To: Eric Biggers <ebiggers@kernel.org> Cc: linux-fscrypt@vger.kernel.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, Lukas Czerner <lczerner@redhat.com>, Jeff Layton <jlayton@kernel.org>, Theodore Ts'o <tytso@mit.edu>, stable@vger.kernel.org, Jaegeuk Kim <jaegeuk@kernel.org> Subject: Re: [f2fs-dev] [PATCH v3 1/5] ext4: fix memory leak in parse_apply_sb_mount_options() Date: Sat, 14 May 2022 17:39:04 +0530 [thread overview] Message-ID: <20220514120904.xbbfyne32lp47t2p@riteshh-domain> (raw) In-Reply-To: <20220513231605.175121-2-ebiggers@kernel.org> On 22/05/13 04:16PM, Eric Biggers wrote: > From: Eric Biggers <ebiggers@google.com> > > If processing the on-disk mount options fails after any memory was > allocated in the ext4_fs_context, e.g. s_qf_names, then this memory is > leaked. Fix this by calling ext4_fc_free() instead of kfree() directly. Thanks for splitting the patch. It becomes an easy backport. > > Reproducer: > > mkfs.ext4 -F /dev/vdc > tune2fs /dev/vdc -E mount_opts=usrjquota=file > echo clear > /sys/kernel/debug/kmemleak > mount /dev/vdc /vdc > echo scan > /sys/kernel/debug/kmemleak > sleep 5 > echo scan > /sys/kernel/debug/kmemleak > cat /sys/kernel/debug/kmemleak Tested this and as you mentioned this patch fixes the memory leak with s_qf_names in note_qf_name(). tune2fs 1.46.5 (30-Dec-2021) Setting extended default mount options to 'usrjquota=file' unreferenced object 0xffff8881126b9a50 (size 8): comm "mount", pid 1475, jiffies 4294829180 (age 48.670s) hex dump (first 8 bytes): 66 69 6c 65 00 6b 6b a5 file.kk. backtrace: [<ffffffff8153b09d>] __kmalloc_track_caller+0x17d/0x2f0 [<ffffffff8149b7e8>] kmemdup_nul+0x28/0x70 [<ffffffff81753a75>] note_qf_name.isra.0+0x95/0x180 [<ffffffff817548a8>] ext4_parse_param+0xd48/0x11c0 [<ffffffff8175a131>] ext4_fill_super+0x1cc1/0x6260 [<ffffffff8155edce>] get_tree_bdev+0x24e/0x3a0 [<ffffffff81740355>] ext4_get_tree+0x15/0x20 [<ffffffff8155d3a2>] vfs_get_tree+0x52/0x140 [<ffffffff815a2048>] path_mount+0x3f8/0xf30 [<ffffffff815a2c52>] do_mount+0xd2/0xf0 [<ffffffff815a2e4a>] __x64_sys_mount+0xca/0x110 [<ffffffff82e6674b>] do_syscall_64+0x3b/0x90 [<ffffffff8300007c>] entry_SYSCALL_64_after_hwframe+0x44/0xae Feel free to add by - Tested-by: Ritesh Harjani <ritesh.list@gmail.com> -ritesh > > Fixes: 7edfd85b1ffd ("ext4: Completely separate options parsing and sb setup") > Cc: stable@vger.kernel.org > Signed-off-by: Eric Biggers <ebiggers@google.com> > --- > fs/ext4/super.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/fs/ext4/super.c b/fs/ext4/super.c > index 1466fbdbc8e34..60fa2f2623e07 100644 > --- a/fs/ext4/super.c > +++ b/fs/ext4/super.c > @@ -2625,8 +2625,10 @@ static int parse_apply_sb_mount_options(struct super_block *sb, > ret = ext4_apply_options(fc, sb); > > out_free: > - kfree(s_ctx); > - kfree(fc); > + if (fc) { > + ext4_fc_free(fc); > + kfree(fc); > + } > kfree(s_mount_opts); > return ret; > } > -- > 2.36.1 > > > > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
WARNING: multiple messages have this Message-ID (diff)
From: Ritesh Harjani <ritesh.list@gmail.com> To: Eric Biggers <ebiggers@kernel.org> Cc: Theodore Ts'o <tytso@mit.edu>, Jeff Layton <jlayton@kernel.org>, stable@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-fscrypt@vger.kernel.org, Jaegeuk Kim <jaegeuk@kernel.org>, Lukas Czerner <lczerner@redhat.com>, linux-ext4@vger.kernel.org Subject: Re: [f2fs-dev] [PATCH v3 1/5] ext4: fix memory leak in parse_apply_sb_mount_options() Date: Sat, 14 May 2022 17:39:04 +0530 [thread overview] Message-ID: <20220514120904.xbbfyne32lp47t2p@riteshh-domain> (raw) In-Reply-To: <20220513231605.175121-2-ebiggers@kernel.org> On 22/05/13 04:16PM, Eric Biggers wrote: > From: Eric Biggers <ebiggers@google.com> > > If processing the on-disk mount options fails after any memory was > allocated in the ext4_fs_context, e.g. s_qf_names, then this memory is > leaked. Fix this by calling ext4_fc_free() instead of kfree() directly. Thanks for splitting the patch. It becomes an easy backport. > > Reproducer: > > mkfs.ext4 -F /dev/vdc > tune2fs /dev/vdc -E mount_opts=usrjquota=file > echo clear > /sys/kernel/debug/kmemleak > mount /dev/vdc /vdc > echo scan > /sys/kernel/debug/kmemleak > sleep 5 > echo scan > /sys/kernel/debug/kmemleak > cat /sys/kernel/debug/kmemleak Tested this and as you mentioned this patch fixes the memory leak with s_qf_names in note_qf_name(). tune2fs 1.46.5 (30-Dec-2021) Setting extended default mount options to 'usrjquota=file' unreferenced object 0xffff8881126b9a50 (size 8): comm "mount", pid 1475, jiffies 4294829180 (age 48.670s) hex dump (first 8 bytes): 66 69 6c 65 00 6b 6b a5 file.kk. backtrace: [<ffffffff8153b09d>] __kmalloc_track_caller+0x17d/0x2f0 [<ffffffff8149b7e8>] kmemdup_nul+0x28/0x70 [<ffffffff81753a75>] note_qf_name.isra.0+0x95/0x180 [<ffffffff817548a8>] ext4_parse_param+0xd48/0x11c0 [<ffffffff8175a131>] ext4_fill_super+0x1cc1/0x6260 [<ffffffff8155edce>] get_tree_bdev+0x24e/0x3a0 [<ffffffff81740355>] ext4_get_tree+0x15/0x20 [<ffffffff8155d3a2>] vfs_get_tree+0x52/0x140 [<ffffffff815a2048>] path_mount+0x3f8/0xf30 [<ffffffff815a2c52>] do_mount+0xd2/0xf0 [<ffffffff815a2e4a>] __x64_sys_mount+0xca/0x110 [<ffffffff82e6674b>] do_syscall_64+0x3b/0x90 [<ffffffff8300007c>] entry_SYSCALL_64_after_hwframe+0x44/0xae Feel free to add by - Tested-by: Ritesh Harjani <ritesh.list@gmail.com> -ritesh > > Fixes: 7edfd85b1ffd ("ext4: Completely separate options parsing and sb setup") > Cc: stable@vger.kernel.org > Signed-off-by: Eric Biggers <ebiggers@google.com> > --- > fs/ext4/super.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/fs/ext4/super.c b/fs/ext4/super.c > index 1466fbdbc8e34..60fa2f2623e07 100644 > --- a/fs/ext4/super.c > +++ b/fs/ext4/super.c > @@ -2625,8 +2625,10 @@ static int parse_apply_sb_mount_options(struct super_block *sb, > ret = ext4_apply_options(fc, sb); > > out_free: > - kfree(s_ctx); > - kfree(fc); > + if (fc) { > + ext4_fc_free(fc); > + kfree(fc); > + } > kfree(s_mount_opts); > return ret; > } > -- > 2.36.1 > > > > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
next prev parent reply other threads:[~2022-05-14 12:09 UTC|newest] Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-05-13 23:16 [f2fs-dev] [PATCH v3 0/5] test_dummy_encryption fixes and cleanups Eric Biggers 2022-05-13 23:16 ` Eric Biggers 2022-05-13 23:16 ` [f2fs-dev] [PATCH v3 1/5] ext4: fix memory leak in parse_apply_sb_mount_options() Eric Biggers 2022-05-13 23:16 ` Eric Biggers 2022-05-14 12:09 ` Ritesh Harjani [this message] 2022-05-14 12:09 ` [f2fs-dev] " Ritesh Harjani 2022-05-19 2:10 ` Theodore Ts'o 2022-05-19 2:10 ` [f2fs-dev] " Theodore Ts'o 2022-05-13 23:16 ` [f2fs-dev] [PATCH v3 2/5] ext4: only allow test_dummy_encryption when supported Eric Biggers 2022-05-13 23:16 ` Eric Biggers 2022-05-19 2:11 ` Theodore Ts'o 2022-05-19 2:11 ` [f2fs-dev] " Theodore Ts'o 2022-05-13 23:16 ` [f2fs-dev] [PATCH v3 3/5] ext4: fix up test_dummy_encryption handling for new mount API Eric Biggers 2022-05-13 23:16 ` Eric Biggers 2022-05-13 23:16 ` [f2fs-dev] [PATCH v3 4/5] f2fs: use the updated test_dummy_encryption helper functions Eric Biggers 2022-05-13 23:16 ` Eric Biggers 2022-05-19 11:21 ` [f2fs-dev] " Chao Yu 2022-05-19 11:21 ` Chao Yu 2022-05-13 23:16 ` [f2fs-dev] [PATCH v3 5/5] fscrypt: remove fscrypt_set_test_dummy_encryption() Eric Biggers 2022-05-13 23:16 ` Eric Biggers 2022-08-15 18:48 ` [f2fs-dev] " Eric Biggers 2022-08-15 18:48 ` Eric Biggers
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220514120904.xbbfyne32lp47t2p@riteshh-domain \ --to=ritesh.list@gmail.com \ --cc=ebiggers@kernel.org \ --cc=jaegeuk@kernel.org \ --cc=jlayton@kernel.org \ --cc=lczerner@redhat.com \ --cc=linux-ext4@vger.kernel.org \ --cc=linux-f2fs-devel@lists.sourceforge.net \ --cc=linux-fscrypt@vger.kernel.org \ --cc=stable@vger.kernel.org \ --cc=tytso@mit.edu \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.