aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2007-06-24 17:17:24 -0400
committerTheodore Ts'o <tytso@mit.edu>2007-06-24 17:17:24 -0400
commit30dd2622353b9fde462c9112fb0c863620a3bf91 (patch)
tree4408c7729623e10d8b30316b49b9aec6edc9a48e
parent0d8b6733c73e871eb2a32ae0f64687c5dec84525 (diff)
downloadandroid_external_e2fsprogs-30dd2622353b9fde462c9112fb0c863620a3bf91.tar.gz
android_external_e2fsprogs-30dd2622353b9fde462c9112fb0c863620a3bf91.tar.bz2
android_external_e2fsprogs-30dd2622353b9fde462c9112fb0c863620a3bf91.zip
Fix divide by zero error in blkid's NTFS probing logic
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-rw-r--r--lib/blkid/probe.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/blkid/probe.c b/lib/blkid/probe.c
index 0a1d8db6..b5bcdcf6 100644
--- a/lib/blkid/probe.c
+++ b/lib/blkid/probe.c
@@ -420,8 +420,11 @@ static int probe_ntfs(struct blkid_probe *probe,
(ns->bios_parameter_block[1] << 8);
sectors_per_cluster = ns->bios_parameter_block[2];
+ if ((bytes_per_sector < 512) || (sectors_per_cluster == 0))
+ return 1;
+
if (ns->cluster_per_mft_record < 0)
- mft_record_size = 1 << - ns->cluster_per_mft_record;
+ mft_record_size = 1 << (0-ns->cluster_per_mft_record);
else
mft_record_size = ns->cluster_per_mft_record *
sectors_per_cluster * bytes_per_sector;