Be a bit more robust, when encountering partition descriptors that

describe partitions that are out of bounds. We simply ignore those now,
instead of letting the complete scanning fail.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12206 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2005-04-01 01:07:30 +00:00
parent 929db8377e
commit 73d3cc98f6

View File

@ -76,9 +76,11 @@ PartitionMapParser::_ParsePrimary(const partition_table_sector *pts)
const partition_descriptor *descriptor = &pts->table[i];
PrimaryPartition *partition = fMap->PrimaryPartitionAt(i);
partition->SetTo(descriptor, 0, fBlockSize);
// fail, if location is bad
// ignore, if location is bad
if (!partition->CheckLocation(fSessionSize, fBlockSize)) {
error = B_BAD_DATA;
TRACE(("intel: _ParsePrimary(): partition %ld: bad location, "
"ignoring\n"));
partition->Unset();
break;
}
}