* grub-core/fs/fat.c (grub_fat_label) [MODE_EXFAT]: Set *label to 0

if no label is found.
	(grub_fat_iterate_dir): Fix file size type.
	(grub_fat_iterate_dir): Likewise.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2011-10-24 01:31:06 +02:00
parent f646e14309
commit 89481cabbd
2 changed files with 12 additions and 3 deletions

View file

@ -1,3 +1,10 @@
2011-10-23 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/fs/fat.c (grub_fat_label) [MODE_EXFAT]: Set *label to 0
if no label is found.
(grub_fat_iterate_dir): Fix file size type.
(grub_fat_iterate_dir): Likewise.
2011-10-23 Vladimir Serbinenko <phcoder@gmail.com> 2011-10-23 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/lib/reed_solomon.c (gf_invert): Declare as const and * grub-core/lib/reed_solomon.c (gf_invert): Declare as const and

View file

@ -485,7 +485,7 @@ grub_fat_read_data (grub_disk_t disk, struct grub_fat_data *data,
+ data->logical_sector_bits + data->logical_sector_bits
+ GRUB_DISK_SECTOR_BITS); + GRUB_DISK_SECTOR_BITS);
logical_cluster = offset >> logical_cluster_bits; logical_cluster = offset >> logical_cluster_bits;
offset &= (1 << logical_cluster_bits) - 1; offset &= (1ULL << logical_cluster_bits) - 1;
if (logical_cluster < data->cur_cluster_num) if (logical_cluster < data->cur_cluster_num)
{ {
@ -631,9 +631,9 @@ grub_fat_iterate_dir (grub_disk_t disk, struct grub_fat_data *data,
case 0xc0: case 0xc0:
node.first_cluster = grub_cpu_to_le32 (sec.type_specific.stream_extension.first_cluster); node.first_cluster = grub_cpu_to_le32 (sec.type_specific.stream_extension.first_cluster);
node.valid_size node.valid_size
= grub_cpu_to_le32 (sec.type_specific.stream_extension.valid_size); = grub_cpu_to_le64 (sec.type_specific.stream_extension.valid_size);
node.file_size node.file_size
= grub_cpu_to_le32 (sec.type_specific.stream_extension.file_size); = grub_cpu_to_le64 (sec.type_specific.stream_extension.file_size);
node.have_stream = 1; node.have_stream = 1;
break; break;
case 0xc1: case 0xc1:
@ -1026,6 +1026,8 @@ grub_fat_label (grub_device_t device, char **label)
if (! data) if (! data)
return grub_errno; return grub_errno;
*label = NULL;
while (1) while (1)
{ {
offset += sizeof (dir); offset += sizeof (dir);