From f7e08c5cb68f84541bb982c3dd6ab50a163bd2c2 Mon Sep 17 00:00:00 2001 From: Li Jinlin Date: Tue, 29 Mar 2022 11:00:07 +0800 Subject: [PATCH 1/6] hfsplus_btree_search: free node when hfsplus_file_read failed when hfsplus_file_read() return error, need to free node, otherwise there will be memory leak Signed-off-by: Wu Guanghao Signed-off-by: Li Jinlin --- libparted/fs/r/hfs/advfs_plus.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libparted/fs/r/hfs/advfs_plus.c b/libparted/fs/r/hfs/advfs_plus.c index 55e88cd..b1cc644 100644 --- a/libparted/fs/r/hfs/advfs_plus.c +++ b/libparted/fs/r/hfs/advfs_plus.c @@ -101,9 +101,10 @@ hfsplus_btree_search (HfsPPrivateFile* b_tree_file, HfsPPrivateGenericKey* key, /* Read the root node */ if (!hfsplus_file_read (b_tree_file, node, - (PedSector) node_number * size, size)) + (PedSector) node_number * size, size)) { + free(node); return 0; - + } /* Follow the white rabbit */ while (1) { record_number = PED_BE16_TO_CPU (desc->rec_nb); -- 2.27.0