bootsect.c: Don't allow negative start clusters for $MFT/$MFTMirr.

Negative values for mft_lcn / mftmirr_lcn don't make any sense and must
be detected as corruptions.
edge.strict_endians
Erik Larsson 2012-09-24 11:35:41 +02:00
parent 0b2a85b612
commit 9337e0a069
1 changed files with 2 additions and 2 deletions

View File

@ -215,8 +215,8 @@ int ntfs_boot_sector_parse(ntfs_volume *vol, const NTFS_BOOT_SECTOR *bs)
vol->mftmirr_lcn = sle64_to_cpu(bs->mftmirr_lcn);
ntfs_log_debug("MFT LCN = %lld\n", (long long)vol->mft_lcn);
ntfs_log_debug("MFTMirr LCN = %lld\n", (long long)vol->mftmirr_lcn);
if (vol->mft_lcn > vol->nr_clusters ||
vol->mftmirr_lcn > vol->nr_clusters) {
if ((vol->mft_lcn < 0 || vol->mft_lcn > vol->nr_clusters) ||
(vol->mftmirr_lcn < 0 || vol->mftmirr_lcn > vol->nr_clusters)) {
ntfs_log_error("$MFT LCN (%lld) or $MFTMirr LCN (%lld) is "
"greater than the number of clusters (%lld).\n",
(long long)vol->mft_lcn, (long long)vol->mftmirr_lcn,