]> git.hungrycats.org Git - linux/commitdiff
jbd2: avoid memleak in jbd2_journal_write_metadata_buffer
authorKemeng Shi <shikemeng@huaweicloud.com>
Tue, 14 May 2024 11:24:30 +0000 (19:24 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Aug 2024 13:34:16 +0000 (15:34 +0200)
[ Upstream commit cc102aa24638b90e04364d64e4f58a1fa91a1976 ]

The new_bh is from alloc_buffer_head, we should call free_buffer_head to
free it in error case.

Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
Reviewed-by: Zhang Yi <yi.zhang@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20240514112438.1269037-2-shikemeng@huaweicloud.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/jbd2/journal.c

index ae5b544ed0cc09fabbb8ddcff7c3357d0f1c5e33..c8d9d85e0e871c0a6176d28fea74d156d8f1cfb9 100644 (file)
@@ -399,6 +399,7 @@ repeat:
                tmp = jbd2_alloc(bh_in->b_size, GFP_NOFS);
                if (!tmp) {
                        brelse(new_bh);
+                       free_buffer_head(new_bh);
                        return -ENOMEM;
                }
                spin_lock(&jh_in->b_state_lock);