From: Vladimir Serbinenko Date: Tue, 20 Jan 2015 14:09:42 +0000 (+0100) Subject: * grub-core/disk/ieee1275/nand.c (grub_nand_open): Check block size X-Git-Tag: 2.02-beta3~572 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1959b16957bbb49bfaa16471d04bd9efc77387f;p=thirdparty%2Fgrub.git * grub-core/disk/ieee1275/nand.c (grub_nand_open): Check block size validity. --- diff --git a/ChangeLog b/ChangeLog index 8661726df..bdd5697ab 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-01-20 Vladimir Serbinenko + + * grub-core/disk/ieee1275/nand.c (grub_nand_open): Check block size + validity. + 2015-01-20 Vladimir Serbinenko * grub-core/disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Do not diff --git a/grub-core/disk/ieee1275/nand.c b/grub-core/disk/ieee1275/nand.c index 576e9ccc4..feffa8c4c 100644 --- a/grub-core/disk/ieee1275/nand.c +++ b/grub-core/disk/ieee1275/nand.c @@ -113,6 +113,11 @@ grub_nand_open (const char *name, grub_disk_t disk) } data->block_size = (args.size1 >> GRUB_DISK_SECTOR_BITS); + if (!data->block_size) + { + grub_error (GRUB_ERR_UNKNOWN_DEVICE, "invalid block size"); + goto fail; + } INIT_IEEE1275_COMMON (&args.common, "call-method", 2, 3); args.method = (grub_ieee1275_cell_t) "size";