1dc728923Sopenharmony_ciFrom 1c966c9dffef7e823a020a2f3982e9b9b1953e8b Mon Sep 17 00:00:00 2001 2dc728923Sopenharmony_ciFrom: zhanchengbin <zhanchengbin1@huawei.com> 3dc728923Sopenharmony_ciDate: Fri, 31 Dec 2021 15:43:36 +0800 4dc728923Sopenharmony_ciSubject: libext2fs: fix memory leak in error path while opening test_io 5dc728923Sopenharmony_ci manager 6dc728923Sopenharmony_ci 7dc728923Sopenharmony_ciLink: https://lore.kernel.org/r/d0632bbc-9713-38a9-c914-137b702f6ae1@huawei.com 8dc728923Sopenharmony_ciSigned-off-by: zhanchengbin <zhanchengbin1@huawei.com> 9dc728923Sopenharmony_ciSigned-off-by: Theodore Ts'o <tytso@mit.edu> 10dc728923Sopenharmony_ci--- 11dc728923Sopenharmony_ci lib/ext2fs/test_io.c | 2 ++ 12dc728923Sopenharmony_ci lib/ext2fs/undo_io.c | 2 ++ 13dc728923Sopenharmony_ci 2 files changed, 4 insertions(+) 14dc728923Sopenharmony_ci 15dc728923Sopenharmony_cidiff --git a/lib/ext2fs/test_io.c b/lib/ext2fs/test_io.c 16dc728923Sopenharmony_ciindex 480e68fc..6843edbc 100644 17dc728923Sopenharmony_ci--- a/lib/ext2fs/test_io.c 18dc728923Sopenharmony_ci+++ b/lib/ext2fs/test_io.c 19dc728923Sopenharmony_ci@@ -248,6 +248,8 @@ static errcode_t test_open(const char *name, int flags, io_channel *channel) 20dc728923Sopenharmony_ci return 0; 21dc728923Sopenharmony_ci 22dc728923Sopenharmony_ci cleanup: 23dc728923Sopenharmony_ci+ if (io && io->name) 24dc728923Sopenharmony_ci+ ext2fs_free_mem(&io->name); 25dc728923Sopenharmony_ci if (io) 26dc728923Sopenharmony_ci ext2fs_free_mem(&io); 27dc728923Sopenharmony_ci if (data) 28dc728923Sopenharmony_cidiff --git a/lib/ext2fs/undo_io.c b/lib/ext2fs/undo_io.c 29dc728923Sopenharmony_ciindex eb56f53d..f4a6d526 100644 30dc728923Sopenharmony_ci--- a/lib/ext2fs/undo_io.c 31dc728923Sopenharmony_ci+++ b/lib/ext2fs/undo_io.c 32dc728923Sopenharmony_ci@@ -790,6 +790,8 @@ cleanup: 33dc728923Sopenharmony_ci io_channel_close(data->real); 34dc728923Sopenharmony_ci if (data) 35dc728923Sopenharmony_ci ext2fs_free_mem(&data); 36dc728923Sopenharmony_ci+ if (io && io->name) 37dc728923Sopenharmony_ci+ ext2fs_free_mem(&io->name); 38dc728923Sopenharmony_ci if (io) 39dc728923Sopenharmony_ci ext2fs_free_mem(&io); 40dc728923Sopenharmony_ci return retval; 41dc728923Sopenharmony_ci-- 42dc728923Sopenharmony_cicgit 43dc728923Sopenharmony_ci 44