From: Peter Nelson Date: Sun, 7 Dec 2014 16:57:49 +0000 (+0100) Subject: * grub-core/fs/ext2.c (grub_ext2_read_block): Support large sparse chunks. X-Git-Tag: 2.02-beta3~589 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58f66137a37f3d84a8b37fbe7d5be8e49c3c5768;p=thirdparty%2Fgrub.git * grub-core/fs/ext2.c (grub_ext2_read_block): Support large sparse chunks. --- 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,