From: Glenn Washburn Date: Tue, 15 Dec 2020 23:31:06 +0000 (-0600) Subject: luks2: Convert to crypt sectors from GRUB native sectors X-Git-Tag: grub-2.06-rc1~149 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=90fb18632e03158e1cec42cf87013731ad593f17;p=thirdparty%2Fgrub.git luks2: Convert to crypt sectors from GRUB native sectors The function grub_disk_native_sectors(source) returns the number of sectors of source in GRUB native (512-byte) sectors, not source sized sectors. So the conversion needs to use GRUB_DISK_SECTOR_BITS, the GRUB native sector size. Signed-off-by: Glenn Washburn Reviewed-by: Daniel Kiper --- diff --git a/grub-core/disk/luks2.c b/grub-core/disk/luks2.c index 8d2457557..8c1156dd0 100644 --- a/grub-core/disk/luks2.c +++ b/grub-core/disk/luks2.c @@ -631,7 +631,7 @@ luks2_recover_key (grub_disk_t source, crypt->log_sector_size = sizeof (unsigned int) * 8 - __builtin_clz ((unsigned int) segment.sector_size) - 1; if (grub_strcmp (segment.size, "dynamic") == 0) - crypt->total_sectors = (grub_disk_native_sectors (source) >> (crypt->log_sector_size - source->log_sector_size)) + crypt->total_sectors = (grub_disk_native_sectors (source) >> (crypt->log_sector_size - GRUB_DISK_SECTOR_BITS)) - crypt->offset_sectors; else crypt->total_sectors = grub_strtoull (segment.size, NULL, 10) >> crypt->log_sector_size;