2009-02-05 Felix Zielcke fs/fat.c (grub_fat_mount): Try to avoid false positives by checking bpb.version_specific.fat12_or_fat16.fstype and bpb.version_specific.fat32.fstype. Index: fs/fat.c =================================================================== --- fs/fat.c (revision 1973) +++ fs/fat.c (working copy) @@ -187,6 +187,11 @@ grub_fat_mount (grub_disk_t disk) if (grub_disk_read (disk, 0, 0, sizeof (bpb), (char *) &bpb)) goto fail; + if (! grub_strncmp((const char *)bpb.version_specific.fat12_or_fat16.fstype,"FAT12",5) + || ! grub_strncmp((const char *)bpb.version_specific.fat12_or_fat16.fstype,"FAT16",5) + || ! grub_strncmp((const char *)bpb.version_specific.fat32.fstype,"FAT32",5)) + goto fail; + /* Get the sizes of logical sectors and clusters. */ data->logical_sector_bits = fat_log2 (grub_le_to_cpu16 (bpb.bytes_per_sector));