]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
fs/hfsplus: Fix memory leak in grub_hfsplus_btree_search()
authort.feng <fengtao40@huawei.com>
Tue, 29 Nov 2022 09:14:12 +0000 (17:14 +0800)
committerDaniel Kiper <daniel.kiper@oracle.com>
Wed, 7 Dec 2022 22:38:26 +0000 (23:38 +0100)
Fixes: 58ea11d5b (fs/hfsplus: Don't fetch a key beyond the end of the node)
Signed-off-by: t.feng <fengtao40@huawei.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/fs/hfsplus.c

index 6337cbfcbec6d68d7ff168484f0e3de73279a0c8..11393ca34663e56fb791569a2963178cea6a3304 100644 (file)
@@ -652,7 +652,10 @@ grub_hfsplus_btree_search (struct grub_hfsplus_btree *btree,
                         + 2);
 
              if ((char *) pointer > node + btree->nodesize - 2)
-               return grub_error (GRUB_ERR_BAD_FS, "HFS+ key beyond end of node");
+               {
+                 grub_free (node);
+                 return grub_error (GRUB_ERR_BAD_FS, "HFS+ key beyond end of node");
+               }
 
              currnode = grub_be_to_cpu32 (grub_get_unaligned32 (pointer));
              match = 1;