Fix off by one error in FAT16 <=> FAT32 detection

cluster_count is compared against FAT16_MAX, which is defined as 0xfff4
That is the maximum number of cluster a FAT16 can have.

For reference also check the  hardware whitepaper from Microsoft
FAT: General Overview of On-Disk Format, version 1.03 page 15

Signed-off-by: Thomas Frauendorfer <tf@miray.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Thomas Frauendorfer 2019-03-05 17:04:34 +01:00 committed by Denys Vlasenko
parent 0ddc742c04
commit 2bbd1e1e8a

View File

@ -247,7 +247,7 @@ int FAST_FUNC volume_id_probe_vfat(struct volume_id *id /*,uint64_t fat_partitio
// strcpy(id->type_version, "FAT32"); // strcpy(id->type_version, "FAT32");
// goto fat32; // goto fat32;
// } // }
if (cluster_count >= FAT16_MAX) if (cluster_count > FAT16_MAX)
goto fat32; goto fat32;
/* the label may be an attribute in the root directory */ /* the label may be an attribute in the root directory */