// The information can't be got from the invalid PeImage\r
//\r
DEBUG ((DEBUG_INFO, "DxeImageVerificationLib: PeImage invalid. Cannot retrieve image information.\n"));\r
- goto Done;\r
+ goto Failed;\r
}\r
\r
DosHdr = (EFI_IMAGE_DOS_HEADER *) mImageBase;\r
// It is not a valid Pe/Coff file.\r
//\r
DEBUG ((DEBUG_INFO, "DxeImageVerificationLib: Not a valid PE/COFF image.\n"));\r
- goto Done;\r
+ goto Failed;\r
}\r
\r
if (mNtHeader.Pe32->OptionalHeader.Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) {\r
//\r
if (!HashPeImage (HASHALG_SHA256)) {\r
DEBUG ((DEBUG_INFO, "DxeImageVerificationLib: Failed to hash this image using %s.\n", mHashTypeStr));\r
- goto Done;\r
+ goto Failed;\r
}\r
\r
if (IsSignatureFoundInDatabase (EFI_IMAGE_SECURITY_DATABASE1, mImageDigest, &mCertType, mImageDigestSize)) {\r
// Image Hash is in forbidden database (DBX).\r
//\r
DEBUG ((DEBUG_INFO, "DxeImageVerificationLib: Image is not signed and %s hash of image is forbidden by DBX.\n", mHashTypeStr));\r
- goto Done;\r
+ goto Failed;\r
}\r
\r
if (IsSignatureFoundInDatabase (EFI_IMAGE_SECURITY_DATABASE, mImageDigest, &mCertType, mImageDigestSize)) {\r
// Image Hash is not found in both forbidden and allowed database.\r
//\r
DEBUG ((DEBUG_INFO, "DxeImageVerificationLib: Image is not signed and %s hash of image is not found in DB/DBX.\n", mHashTypeStr));\r
- goto Done;\r
+ goto Failed;\r
}\r
\r
//\r
SignatureListSize = sizeof (EFI_SIGNATURE_LIST) + sizeof (EFI_SIGNATURE_DATA) - 1 + mImageDigestSize;\r
SignatureList = (EFI_SIGNATURE_LIST *) AllocateZeroPool (SignatureListSize);\r
if (SignatureList == NULL) {\r
- goto Done;\r
+ goto Failed;\r
}\r
SignatureList->SignatureHeaderSize = 0;\r
SignatureList->SignatureListSize = (UINT32) SignatureListSize;\r
CopyMem (Signature->SignatureData, mImageDigest, mImageDigestSize);\r
}\r
\r
-Done:\r
- if (Status != EFI_SUCCESS) {\r
- //\r
- // Policy decides to defer or reject the image; add its information in image executable information table.\r
- //\r
- NameStr = ConvertDevicePathToText (File, FALSE, TRUE);\r
- AddImageExeInfo (Action, NameStr, File, SignatureList, SignatureListSize);\r
- if (NameStr != NULL) {\r
- DEBUG((EFI_D_INFO, "The image doesn't pass verification: %s\n", NameStr));\r
- FreePool(NameStr);\r
- }\r
- Status = EFI_SECURITY_VIOLATION;\r
+Failed:\r
+ //\r
+ // Policy decides to defer or reject the image; add its information in image executable information table.\r
+ //\r
+ NameStr = ConvertDevicePathToText (File, FALSE, TRUE);\r
+ AddImageExeInfo (Action, NameStr, File, SignatureList, SignatureListSize);\r
+ if (NameStr != NULL) {\r
+ DEBUG ((DEBUG_INFO, "The image doesn't pass verification: %s\n", NameStr));\r
+ FreePool(NameStr);\r
}\r
+ Status = EFI_SECURITY_VIOLATION;\r
\r
if (SignatureList != NULL) {\r
FreePool (SignatureList);\r