Fix CPD signature verification

This commit is contained in:
vit9696 2020-01-25 10:54:06 +03:00
parent 4d948475d8
commit 1dccf3f15a

View File

@ -283,7 +283,7 @@ make_partition_table_consistent:
// Add tree item // Add tree item
UINT8 type = Subtypes::CodeFptPartition + partitions[i].ptEntry.Type; UINT8 type = Subtypes::CodeFptPartition + partitions[i].ptEntry.Type;
partitionIndex = model->addItem(partitions[i].ptEntry.Offset, Types::FptPartition, type, name, UString(), info, UByteArray(), partition, UByteArray(), Fixed, parent); partitionIndex = model->addItem(partitions[i].ptEntry.Offset, Types::FptPartition, type, name, UString(), info, UByteArray(), partition, UByteArray(), Fixed, parent);
if (type == Subtypes::CodeFptPartition) { if (type == Subtypes::CodeFptPartition && partition.size() >= sizeof(UINT32) && readUnaligned((const UINT32*)partition.constData()) == CPD_SIGNATURE) {
// Parse code partition contents // Parse code partition contents
UModelIndex cpdIndex; UModelIndex cpdIndex;
ffsParser->parseCpdRegion(partition, partitions[i].ptEntry.Offset, partitionIndex, cpdIndex); ffsParser->parseCpdRegion(partition, partitions[i].ptEntry.Offset, partitionIndex, cpdIndex);