From: Thomas Frauendorfer Date: Tue, 5 Mar 2019 16:04:34 +0000 (+0100) Subject: Fix off by one error in FAT16 <=> FAT32 detection X-Git-Tag: 1_31_0~163 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2bbd1e1e8ababc480ff5d373847ab98ba0cc23dd;p=oweals%2Fbusybox.git 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 Signed-off-by: Denys Vlasenko --- diff --git a/util-linux/volume_id/fat.c b/util-linux/volume_id/fat.c index b24ed098e..fe3750880 100644 --- a/util-linux/volume_id/fat.c +++ b/util-linux/volume_id/fat.c @@ -247,7 +247,7 @@ int FAST_FUNC volume_id_probe_vfat(struct volume_id *id /*,uint64_t fat_partitio // strcpy(id->type_version, "FAT32"); // goto fat32; // } - if (cluster_count >= FAT16_MAX) + if (cluster_count > FAT16_MAX) goto fat32; /* the label may be an attribute in the root directory */