Fallback to RawArea parsing in case IntelDescriptor or Capsule parsing was unsuccesful

This commit is contained in:
Nikolaj Schlej 2023-02-18 08:28:15 -08:00
parent 6f9dc0ab88
commit 2d1ebcc11b

View File

@ -110,18 +110,14 @@ USTATUS FfsParser::performFirstPass(const UByteArray & buffer, UModelIndex & ind
return U_INVALID_PARAMETER; return U_INVALID_PARAMETER;
} }
USTATUS result;
// Try parsing as UEFI Capsule // Try parsing as UEFI Capsule
result = parseCapsule(buffer, 0, UModelIndex(), index);; if (U_SUCCESS == parseCapsule(buffer, 0, UModelIndex(), index)) {
if (result != U_ITEM_NOT_FOUND) { return U_SUCCESS;
return result;
} }
// Try parsing as Intel image // Try parsing as Intel image
result = parseIntelImage(buffer, 0, UModelIndex(), index); if (U_SUCCESS == parseIntelImage(buffer, 0, UModelIndex(), index)) {
if (result != U_ITEM_NOT_FOUND) { return U_SUCCESS;
return result;
} }
// Parse as generic image // Parse as generic image
@ -274,9 +270,8 @@ USTATUS FfsParser::parseCapsule(const UByteArray & capsule, const UINT32 localOf
UModelIndex imageIndex; UModelIndex imageIndex;
// Try parsing as Intel image // Try parsing as Intel image
USTATUS result = parseIntelImage(image, capsuleHeaderSize, index, imageIndex); if (U_SUCCESS == parseIntelImage(image, capsuleHeaderSize, index, imageIndex)) {
if (result != U_ITEM_NOT_FOUND) { return U_SUCCESS;
return result;
} }
// Parse as generic image // Parse as generic image