aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Thomas Frauendorfer <tf@miray.de>2019-03-05 17:04:34 +0100
committerGravatar Denys Vlasenko <vda.linux@googlemail.com>2019-03-15 09:57:24 +0100
commit2bbd1e1e8ababc480ff5d373847ab98ba0cc23dd (patch)
treee799612ffde8f738f127db38aaa728a7a3616617
parent0ddc742c04538fdd8be51fb1d4dbcbd4309952db (diff)
downloadbusybox-2bbd1e1e8ababc480ff5d373847ab98ba0cc23dd.tar.gz
busybox-2bbd1e1e8ababc480ff5d373847ab98ba0cc23dd.tar.bz2
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>
-rw-r--r--util-linux/volume_id/fat.c2
1 files changed, 1 insertions, 1 deletions
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 */