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