grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SECURITY PATCH 072/117] fs/hfsplus: Don't fetch a key beyond the end of


From: Daniel Kiper
Subject: [SECURITY PATCH 072/117] fs/hfsplus: Don't fetch a key beyond the end of the node
Date: Tue, 2 Mar 2021 19:01:19 +0100

From: Daniel Axtens <dja@axtens.net>

Otherwise you get a wild pointer, leading to a bunch of invalid reads.
Check it falls inside the given node.

Signed-off-by: Daniel Axtens <dja@axtens.net>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
---
 grub-core/fs/hfsplus.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c
index 8fe7c12ed..1c7791b02 100644
--- a/grub-core/fs/hfsplus.c
+++ b/grub-core/fs/hfsplus.c
@@ -635,6 +635,10 @@ grub_hfsplus_btree_search (struct grub_hfsplus_btree 
*btree,
              pointer = ((char *) currkey
                         + grub_be_to_cpu16 (currkey->keylen)
                         + 2);
+
+             if ((char *) pointer > node + btree->nodesize - 2)
+               return grub_error (GRUB_ERR_BAD_FS, "HFS+ key beyond end of 
node");
+
              currnode = grub_be_to_cpu32 (grub_get_unaligned32 (pointer));
              match = 1;
            }
-- 
2.11.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]