Rename readMisaligned to readUnaligned

This commit is contained in:
vit9696 2018-11-12 09:13:34 +03:00
parent f2cdf7dc3b
commit 5b26775463
5 changed files with 29 additions and 29 deletions

View File

@ -44,9 +44,9 @@ USTATUS FfsDumper::recursiveDump(const UModelIndex & index, const UString & path
if (guid.isEmpty() || if (guid.isEmpty() ||
(model->subtype(index) == EFI_SECTION_FREEFORM_SUBTYPE_GUID && (model->subtype(index) == EFI_SECTION_FREEFORM_SUBTYPE_GUID &&
guidToUString(readMisaligned((const EFI_GUID*)(model->header(index).constData() + sizeof(EFI_COMMON_SECTION_HEADER)))) == guid) || guidToUString(readUnaligned((const EFI_GUID*)(model->header(index).constData() + sizeof(EFI_COMMON_SECTION_HEADER)))) == guid) ||
guidToUString(readMisaligned((const EFI_GUID*)model->header(index).constData())) == guid || guidToUString(readUnaligned((const EFI_GUID*)model->header(index).constData())) == guid ||
guidToUString(readMisaligned((const EFI_GUID*)model->header(model->findParentOfType(index, Types::File)).constData())) == guid) { guidToUString(readUnaligned((const EFI_GUID*)model->header(model->findParentOfType(index, Types::File)).constData())) == guid) {
if (!changeDirectory(path) && !makeDirectory(path)) if (!changeDirectory(path) && !makeDirectory(path))
return U_DIR_CREATE; return U_DIR_CREATE;

View File

@ -67,12 +67,12 @@ USTATUS UEFIFind::find(const UINT8 mode, const bool count, const UString & hexPa
std::pair<UModelIndex, UModelIndex> indexes = *citer; std::pair<UModelIndex, UModelIndex> indexes = *citer;
if (!model->hasEmptyHeader(indexes.first)) if (!model->hasEmptyHeader(indexes.first))
data = model->header(indexes.first).left(16); data = model->header(indexes.first).left(16);
result += guidToUString(readMisaligned((const EFI_GUID*)data.constData())); result += guidToUString(readUnaligned((const EFI_GUID*)data.constData()));
// Special case of freeform subtype GUID files // Special case of freeform subtype GUID files
if (indexes.second.isValid() && model->subtype(indexes.second) == EFI_SECTION_FREEFORM_SUBTYPE_GUID) { if (indexes.second.isValid() && model->subtype(indexes.second) == EFI_SECTION_FREEFORM_SUBTYPE_GUID) {
data = model->header(indexes.second); data = model->header(indexes.second);
result += UString(" ") + (guidToUString(readMisaligned((const EFI_GUID*)(data.constData() + sizeof(EFI_COMMON_SECTION_HEADER))))); result += UString(" ") + (guidToUString(readUnaligned((const EFI_GUID*)(data.constData() + sizeof(EFI_COMMON_SECTION_HEADER)))));
} }
result += UString("\n"); result += UString("\n");

View File

@ -1162,7 +1162,7 @@ USTATUS FfsParser::findNextRawAreaItem(const UModelIndex & index, const UINT32 l
for (; offset < dataSize - sizeof(UINT32); offset++) { for (; offset < dataSize - sizeof(UINT32); offset++) {
const UINT32* currentPos = (const UINT32*)(data.constData() + offset); const UINT32* currentPos = (const UINT32*)(data.constData() + offset);
const UINT32 restSize = dataSize - offset; const UINT32 restSize = dataSize - offset;
if (readMisaligned(currentPos) == INTEL_MICROCODE_HEADER_VERSION) {// Intel microcode if (readUnaligned(currentPos) == INTEL_MICROCODE_HEADER_VERSION) {// Intel microcode
// Check data size // Check data size
if (restSize < sizeof(INTEL_MICROCODE_HEADER)) if (restSize < sizeof(INTEL_MICROCODE_HEADER))
continue; continue;
@ -1189,7 +1189,7 @@ USTATUS FfsParser::findNextRawAreaItem(const UModelIndex & index, const UINT32 l
nextItemOffset = offset; nextItemOffset = offset;
break; break;
} }
else if (readMisaligned(currentPos) == EFI_FV_SIGNATURE) { else if (readUnaligned(currentPos) == EFI_FV_SIGNATURE) {
if (offset < EFI_FV_SIGNATURE_OFFSET) if (offset < EFI_FV_SIGNATURE_OFFSET)
continue; continue;
@ -1392,7 +1392,7 @@ USTATUS FfsParser::parseVolumeBody(const UModelIndex & index)
// Check GUIDs for being equal // Check GUIDs for being equal
if (currentGuid == anotherGuid) { if (currentGuid == anotherGuid) {
msg(usprintf("%s: file with duplicate GUID ", __FUNCTION__) + guidToUString(readMisaligned((EFI_GUID*)(anotherGuid.data()))), another); msg(usprintf("%s: file with duplicate GUID ", __FUNCTION__) + guidToUString(readUnaligned((EFI_GUID*)(anotherGuid.data()))), another);
} }
} }
} }
@ -2456,8 +2456,8 @@ USTATUS FfsParser::parseCompressedSectionBody(const UModelIndex & index)
if (model->hasEmptyParsingData(index) == false) { if (model->hasEmptyParsingData(index) == false) {
UByteArray data = model->parsingData(index); UByteArray data = model->parsingData(index);
const COMPRESSED_SECTION_PARSING_DATA* pdata = (const COMPRESSED_SECTION_PARSING_DATA*)data.constData(); const COMPRESSED_SECTION_PARSING_DATA* pdata = (const COMPRESSED_SECTION_PARSING_DATA*)data.constData();
compressionType = readMisaligned(pdata).compressionType; compressionType = readUnaligned(pdata).compressionType;
uncompressedSize = readMisaligned(pdata).uncompressedSize; uncompressedSize = readUnaligned(pdata).uncompressedSize;
} }
// Decompress section // Decompress section
@ -2523,7 +2523,7 @@ USTATUS FfsParser::parseGuidedSectionBody(const UModelIndex & index)
if (model->hasEmptyParsingData(index) == false) { if (model->hasEmptyParsingData(index) == false) {
UByteArray data = model->parsingData(index); UByteArray data = model->parsingData(index);
const GUIDED_SECTION_PARSING_DATA* pdata = (const GUIDED_SECTION_PARSING_DATA*)data.constData(); const GUIDED_SECTION_PARSING_DATA* pdata = (const GUIDED_SECTION_PARSING_DATA*)data.constData();
guid = readMisaligned(pdata).guid; guid = readUnaligned(pdata).guid;
} }
// Check if section requires processing // Check if section requires processing
@ -2643,7 +2643,7 @@ USTATUS FfsParser::parseDepexSectionBody(const UModelIndex & index)
return U_SUCCESS; return U_SUCCESS;
} }
guid = (const EFI_GUID*)(current + EFI_DEP_OPCODE_SIZE); guid = (const EFI_GUID*)(current + EFI_DEP_OPCODE_SIZE);
parsed += UString("\nBEFORE ") + guidToUString(readMisaligned(guid)); parsed += UString("\nBEFORE ") + guidToUString(readUnaligned(guid));
current += EFI_DEP_OPCODE_SIZE + sizeof(EFI_GUID); current += EFI_DEP_OPCODE_SIZE + sizeof(EFI_GUID);
if (*current != EFI_DEP_END){ if (*current != EFI_DEP_END){
msg(usprintf("%s: DEPEX section ends with non-END opcode", __FUNCTION__), index); msg(usprintf("%s: DEPEX section ends with non-END opcode", __FUNCTION__), index);
@ -2656,7 +2656,7 @@ USTATUS FfsParser::parseDepexSectionBody(const UModelIndex & index)
return U_SUCCESS; return U_SUCCESS;
} }
guid = (const EFI_GUID*)(current + EFI_DEP_OPCODE_SIZE); guid = (const EFI_GUID*)(current + EFI_DEP_OPCODE_SIZE);
parsed += UString("\nAFTER ") + guidToUString(readMisaligned(guid)); parsed += UString("\nAFTER ") + guidToUString(readUnaligned(guid));
current += EFI_DEP_OPCODE_SIZE + sizeof(EFI_GUID); current += EFI_DEP_OPCODE_SIZE + sizeof(EFI_GUID);
if (*current != EFI_DEP_END) { if (*current != EFI_DEP_END) {
msg(usprintf("%s: DEPEX section ends with non-END opcode", __FUNCTION__), index); msg(usprintf("%s: DEPEX section ends with non-END opcode", __FUNCTION__), index);
@ -2696,7 +2696,7 @@ USTATUS FfsParser::parseDepexSectionBody(const UModelIndex & index)
return U_SUCCESS; return U_SUCCESS;
} }
guid = (const EFI_GUID*)(current + EFI_DEP_OPCODE_SIZE); guid = (const EFI_GUID*)(current + EFI_DEP_OPCODE_SIZE);
parsed += UString("\nPUSH ") + guidToUString(readMisaligned(guid)); parsed += UString("\nPUSH ") + guidToUString(readUnaligned(guid));
current += EFI_DEP_OPCODE_SIZE + sizeof(EFI_GUID); current += EFI_DEP_OPCODE_SIZE + sizeof(EFI_GUID);
break; break;
case EFI_DEP_AND: case EFI_DEP_AND:
@ -2769,7 +2769,7 @@ USTATUS FfsParser::parseAprioriRawSection(const UByteArray & body, UString & par
if (count > 0) { if (count > 0) {
for (UINT32 i = 0; i < count; i++) { for (UINT32 i = 0; i < count; i++) {
const EFI_GUID* guid = (const EFI_GUID*)body.constData() + i; const EFI_GUID* guid = (const EFI_GUID*)body.constData() + i;
parsed += UString("\n") + guidToUString(readMisaligned(guid)); parsed += UString("\n") + guidToUString(readUnaligned(guid));
} }
} }
@ -3026,8 +3026,8 @@ USTATUS FfsParser::addMemoryAddressesRecursive(const UModelIndex & index)
if (model->hasEmptyParsingData(index) == false) { if (model->hasEmptyParsingData(index) == false) {
UByteArray data = model->parsingData(index); UByteArray data = model->parsingData(index);
const TE_IMAGE_SECTION_PARSING_DATA* pdata = (const TE_IMAGE_SECTION_PARSING_DATA*)data.constData(); const TE_IMAGE_SECTION_PARSING_DATA* pdata = (const TE_IMAGE_SECTION_PARSING_DATA*)data.constData();
originalImageBase = readMisaligned(pdata).imageBase; originalImageBase = readUnaligned(pdata).imageBase;
adjustedImageBase = readMisaligned(pdata).adjustedImageBase; adjustedImageBase = readUnaligned(pdata).adjustedImageBase;
} }
if (imageBase != 0) { if (imageBase != 0) {

View File

@ -39,7 +39,7 @@ USTATUS NvramParser::parseNvarStore(const UModelIndex & index)
if (parentFileIndex.isValid() && model->hasEmptyParsingData(parentFileIndex) == false) { if (parentFileIndex.isValid() && model->hasEmptyParsingData(parentFileIndex) == false) {
UByteArray data = model->parsingData(parentFileIndex); UByteArray data = model->parsingData(parentFileIndex);
const FILE_PARSING_DATA* pdata = (const FILE_PARSING_DATA*)data.constData(); const FILE_PARSING_DATA* pdata = (const FILE_PARSING_DATA*)data.constData();
emptyByte = readMisaligned(pdata).emptyByte; emptyByte = readUnaligned(pdata).emptyByte;
} }
// Rename parent file // Rename parent file
@ -156,7 +156,7 @@ USTATUS NvramParser::parseNvarStore(const UModelIndex & index)
hasExtendedHeader = true; hasExtendedHeader = true;
msgUnknownExtDataFormat = true; msgUnknownExtDataFormat = true;
extendedHeaderSize = readMisaligned((UINT16*)(body.constData() + body.size() - sizeof(UINT16))); extendedHeaderSize = readUnaligned((UINT16*)(body.constData() + body.size() - sizeof(UINT16)));
if (extendedHeaderSize > (UINT32)body.size()) { if (extendedHeaderSize > (UINT32)body.size()) {
msgExtHeaderTooLong = true; msgExtHeaderTooLong = true;
isInvalid = true; isInvalid = true;
@ -203,7 +203,7 @@ USTATUS NvramParser::parseNvarStore(const UModelIndex & index)
goto parsing_done; goto parsing_done;
} }
timestamp = readMisaligned(tail.constData() + sizeof(UINT8)); timestamp = readUnaligned(tail.constData() + sizeof(UINT8));
hasTimestamp = true; hasTimestamp = true;
msgUnknownExtDataFormat = false; msgUnknownExtDataFormat = false;
} }
@ -215,7 +215,7 @@ USTATUS NvramParser::parseNvarStore(const UModelIndex & index)
goto parsing_done; goto parsing_done;
} }
timestamp = readMisaligned((UINT64*)(tail.constData()) + sizeof(UINT8)); timestamp = readUnaligned((UINT64*)(tail.constData()) + sizeof(UINT8));
hash = tail.mid(sizeof(UINT64) + sizeof(UINT8), SHA256_HASH_SIZE); hash = tail.mid(sizeof(UINT64) + sizeof(UINT8), SHA256_HASH_SIZE);
hasTimestamp = true; hasTimestamp = true;
hasHash = true; hasHash = true;
@ -272,8 +272,8 @@ USTATUS NvramParser::parseNvarStore(const UModelIndex & index)
// Get entry GUID // Get entry GUID
if (entryHeader->Attributes & NVRAM_NVAR_ENTRY_GUID) { // GUID is strored in the variable itself if (entryHeader->Attributes & NVRAM_NVAR_ENTRY_GUID) { // GUID is strored in the variable itself
name = guidToUString(readMisaligned((EFI_GUID*)(entryHeader + 1))); name = guidToUString(readUnaligned((EFI_GUID*)(entryHeader + 1)));
guid = guidToUString(readMisaligned((EFI_GUID*)(entryHeader + 1)), false); guid = guidToUString(readUnaligned((EFI_GUID*)(entryHeader + 1)), false);
} }
// GUID is stored in GUID list at the end of the store // GUID is stored in GUID list at the end of the store
else { else {
@ -283,8 +283,8 @@ USTATUS NvramParser::parseNvarStore(const UModelIndex & index)
// The list begins at the end of the store and goes backwards // The list begins at the end of the store and goes backwards
const EFI_GUID* guidPtr = (const EFI_GUID*)(data.constData() + data.size()) - 1 - guidIndex; const EFI_GUID* guidPtr = (const EFI_GUID*)(data.constData() + data.size()) - 1 - guidIndex;
name = guidToUString(readMisaligned(guidPtr)); name = guidToUString(readUnaligned(guidPtr));
guid = guidToUString(readMisaligned(guidPtr), false); guid = guidToUString(readUnaligned(guidPtr), false);
hasGuidIndex = true; hasGuidIndex = true;
} }
@ -365,7 +365,7 @@ USTATUS NvramParser::parseNvarStore(const UModelIndex & index)
// Try parsing the entry data as NVAR storage if it begins with NVAR signature // Try parsing the entry data as NVAR storage if it begins with NVAR signature
if ((subtype == Subtypes::DataNvarEntry || subtype == Subtypes::FullNvarEntry) if ((subtype == Subtypes::DataNvarEntry || subtype == Subtypes::FullNvarEntry)
&& body.size() >= 4 && readMisaligned((const UINT32*)body.constData()) == NVRAM_NVAR_ENTRY_SIGNATURE) && body.size() >= 4 && readUnaligned((const UINT32*)body.constData()) == NVRAM_NVAR_ENTRY_SIGNATURE)
parseNvarStore(varIndex); parseNvarStore(varIndex);
// Move to next exntry // Move to next exntry
@ -1496,8 +1496,8 @@ USTATUS NvramParser::parseVssStoreBody(const UModelIndex & index, UINT8 alignmen
name = UString("Invalid"); name = UString("Invalid");
} }
else { // Add GUID and text for valid variables else { // Add GUID and text for valid variables
name = guidToUString(readMisaligned(variableGuid)); name = guidToUString(readUnaligned(variableGuid));
info += UString("Variable GUID: ") + guidToUString(readMisaligned(variableGuid), false) + UString("\n"); info += UString("Variable GUID: ") + guidToUString(readUnaligned(variableGuid), false) + UString("\n");
text = UString::fromUtf16(variableName); text = UString::fromUtf16(variableName);
} }

View File

@ -56,7 +56,7 @@ INTN findPattern(const UINT8 *pattern, const UINT8 *patternMask, UINTN patternSi
// Safely dereferences misaligned pointers // Safely dereferences misaligned pointers
template <typename T> template <typename T>
inline T readMisaligned(const T *v) { inline T readUnaligned(const T *v) {
T tmp; T tmp;
memcpy(&tmp, v, sizeof(T)); memcpy(&tmp, v, sizeof(T));
return tmp; return tmp;