From f7e08c5cb68f84541bb982c3dd6ab50a163bd2c2 Mon Sep 17 00:00:00 2001
From: Li Jinlin <lijinlin3@huawei.com>
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 <wuguanghao3@huawei.com>
Signed-off-by: Li Jinlin <lijinlin3@huawei.com>
---
 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

