+2015-01-20 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/disk/ata.c (grub_ata_setaddress): Check that geometry
+ is sane when using CHS addressing.
+
2015-01-20 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/disk/AFSplitter.c (AF_merge): Check that mdlen is not 0.
unsigned int head;
unsigned int sect;
+ if (dev->sectors_per_track == 0
+ || dev->heads == 0)
+ return grub_error (GRUB_ERR_OUT_OF_RANGE,
+ "sector %d cannot be addressed "
+ "using CHS addressing", sector);
+
/* Calculate the sector, cylinder and head to use. */
sect = ((grub_uint32_t) sector % dev->sectors_per_track) + 1;
cylinder = (((grub_uint32_t) sector / dev->sectors_per_track)