summaryrefslogtreecommitdiffstats
path: root/sys/geom/label
diff options
context:
space:
mode:
authordumbbell <dumbbell@FreeBSD.org>2013-03-08 18:07:43 +0000
committerdumbbell <dumbbell@FreeBSD.org>2013-03-08 18:07:43 +0000
commitbd2d452e4e03288c7afbad4522cdf38f1daf45e8 (patch)
tree105a7f0c30b49c3aaac16c2c1c7054b214ba8e54 /sys/geom/label
parent5f30e9f144548ef5d2a3dd7f42b0ffad17a97b48 (diff)
downloadFreeBSD-src-bd2d452e4e03288c7afbad4522cdf38f1daf45e8.zip
FreeBSD-src-bd2d452e4e03288c7afbad4522cdf38f1daf45e8.tar.gz
g_label_ntfs_taste: Abort taste is recsize == 0
This will avoid a 0-byte read (in g_read_data()) leading to a panic, if previously read data are erroneous. Suggested by: John-Mark Gurney <jmg@funkthat.com>
Diffstat (limited to 'sys/geom/label')
-rw-r--r--sys/geom/label/g_label_ntfs.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/geom/label/g_label_ntfs.c b/sys/geom/label/g_label_ntfs.c
index 1ed4a07..e2c84cd 100644
--- a/sys/geom/label/g_label_ntfs.c
+++ b/sys/geom/label/g_label_ntfs.c
@@ -115,7 +115,7 @@ g_label_ntfs_taste(struct g_consumer *cp, char *label, size_t size)
mftrecsz = (char)bf->bf_mftrecsz;
recsize = (mftrecsz > 0) ? (mftrecsz * bf->bf_bps * bf->bf_spc) : (1 << -mftrecsz);
- if (recsize % pp->sectorsize != 0)
+ if (recsize == 0 || recsize % pp->sectorsize != 0)
goto done;
voloff = bf->bf_mftcn * bf->bf_spc * bf->bf_bps +
OpenPOWER on IntegriCloud