From 58f66137a37f3d84a8b37fbe7d5be8e49c3c5768 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sun, 7 Dec 2014 17:57:49 +0100 Subject: [PATCH] * grub-core/fs/ext2.c (grub_ext2_read_block): Support large sparse chunks. --- ChangeLog | 5 +++++ grub-core/fs/ext2.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index b23f0698d..6f2924e41 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-12-07 Peter Nelson + + * grub-core/fs/ext2.c (grub_ext2_read_block): Support large sparse + chunks. + 2014-12-07 Andrei Borzenkov * util/grub-mkconfig_lib.in (version_test_gt): Remove redundant diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c index 5f7a2b9d5..217771d02 100644 --- a/grub-core/fs/ext2.c +++ b/grub-core/fs/ext2.c @@ -484,6 +484,10 @@ grub_ext2_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) indirect: do { + /* If the indirect block is zero, all child blocks are absent + (i.e. filled with zeros.) */ + if (indir == 0) + return 0; if (grub_disk_read (data->disk, ((grub_disk_addr_t) grub_le_to_cpu32 (indir)) << log2_blksz,