diff options
author | pjd <pjd@FreeBSD.org> | 2005-08-28 00:14:21 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2005-08-28 00:14:21 +0000 |
commit | fc694070c0e025c6bf5cb8ab5448868cbbfbef01 (patch) | |
tree | 43ac5408902a9f5d1b8e0e5abec5ee0783d85204 /sys/geom/label | |
parent | 97de855505e7a4beb26e5cde0eacdb0a008941ba (diff) | |
download | FreeBSD-src-fc694070c0e025c6bf5cb8ab5448868cbbfbef01.zip FreeBSD-src-fc694070c0e025c6bf5cb8ab5448868cbbfbef01.tar.gz |
Verify length of the data to read as well.
Diffstat (limited to 'sys/geom/label')
-rw-r--r-- | sys/geom/label/g_label_ntfs.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/geom/label/g_label_ntfs.c b/sys/geom/label/g_label_ntfs.c index 76035fe..5ec213f 100644 --- a/sys/geom/label/g_label_ntfs.c +++ b/sys/geom/label/g_label_ntfs.c @@ -65,6 +65,8 @@ 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) + goto done; voloff = bf->bf_mftcn * bf->bf_spc * bf->bf_bps + recsize * NTFS_VOLUMEINO; |