From daa59f47f6818d2a2c90526be5b2b38a11770dc1 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 25 Apr 2012 16:28:06 +0200 Subject: [PATCH] * grub-core/fs/fat.c (grub_fat_mount): Don't add logical_sector_bits to cluster_bits, since it's already added in. (grub_fat_read_data): Likewise. --- ChangeLog | 6 ++++++ grub-core/fs/fat.c | 5 ++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6b017d1a8..9e1cb20ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-04-25 Vladimir Serbinenko + + * grub-core/fs/fat.c (grub_fat_mount): Don't add logical_sector_bits + to cluster_bits, since it's already added in. + (grub_fat_read_data): Likewise. + 2012-04-25 Vladimir Serbinenko * grub-core/fs/ntfs.c (grub_ntfs_mount): Support 256-byte sectors, diff --git a/grub-core/fs/fat.c b/grub-core/fs/fat.c index ce890f048..5882096b0 100644 --- a/grub-core/fs/fat.c +++ b/grub-core/fs/fat.c @@ -326,7 +326,7 @@ grub_fat_mount (grub_disk_t disk) #else data->cluster_sector = data->root_sector + data->num_root_sectors; data->num_clusters = (((data->num_sectors - data->cluster_sector) - >> (data->cluster_bits + data->logical_sector_bits)) + >> data->cluster_bits) + 2); #endif @@ -482,7 +482,6 @@ grub_fat_read_data (grub_disk_t disk, struct grub_fat_data *data, /* Calculate the logical cluster number and offset. */ logical_cluster_bits = (data->cluster_bits - + data->logical_sector_bits + GRUB_DISK_SECTOR_BITS); logical_cluster = offset >> logical_cluster_bits; offset &= (1ULL << logical_cluster_bits) - 1; @@ -556,7 +555,7 @@ grub_fat_read_data (grub_disk_t disk, struct grub_fat_data *data, /* Read the data here. */ sector = (data->cluster_sector + ((data->cur_cluster - 2) - << (data->cluster_bits + data->logical_sector_bits))); + << data->cluster_bits)); size = (1 << logical_cluster_bits) - offset; if (size > len) size = len;