FmpDevicePkg: Apply uncrustify changes

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737

Apply uncrustify changes to .c/.h files in the FmpDevicePkg package

Cc: Andrew Fish <afish@apple.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
Michael Kubacki
2021-12-05 14:53:58 -08:00
committed by mergify[bot]
parent bcdcc4160d
commit 45ce0a67bb
22 changed files with 841 additions and 697 deletions

View File

@ -50,7 +50,6 @@ CapsuleUpdatePolicyCheckSystemPower (
return CheckSystemPower (Good);
}
/**
Determines if the system thermal state supports a capsule update.
@ -164,7 +163,8 @@ CapsuleUpdatePolicyInitialize (
ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gEdkiiCapsuleUpdatePolicyProtocolGuid);
Status = gBS->InstallMultipleProtocolInterfaces (
&mHandle,
&gEdkiiCapsuleUpdatePolicyProtocolGuid, &mCapsuleUpdatePolicy,
&gEdkiiCapsuleUpdatePolicyProtocolGuid,
&mCapsuleUpdatePolicy,
NULL
);
ASSERT_EFI_ERROR (Status);

View File

@ -54,7 +54,7 @@ DetectTestKey (
//
PublicKeyDataXdr = PcdGetPtr (PcdFmpDevicePkcs7CertBufferXdr);
PublicKeyDataXdrEnd = PublicKeyDataXdr + PcdGetSize (PcdFmpDevicePkcs7CertBufferXdr);
if (PublicKeyDataXdr == NULL || PublicKeyDataXdr == PublicKeyDataXdrEnd) {
if ((PublicKeyDataXdr == NULL) || (PublicKeyDataXdr == PublicKeyDataXdrEnd)) {
return;
}
@ -76,6 +76,7 @@ DetectTestKey (
//
break;
}
//
// Read key length stored in big endian format
//
@ -100,10 +101,12 @@ DetectTestKey (
TestKeyUsed = TRUE;
break;
}
if (!Sha256Update (HashContext, PublicKeyDataXdr, PublicKeyDataLength)) {
TestKeyUsed = TRUE;
break;
}
if (!Sha256Final (HashContext, Digest)) {
TestKeyUsed = TRUE;
break;

View File

@ -56,7 +56,8 @@ const FIRMWARE_MANAGEMENT_PRIVATE_DATA mFirmwareManagementPrivateDataTemplate =
//
// ImageTypeId
//
{ 0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} },
{ 0x00000000, 0x0000,0x0000, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
},
1, // ImageId
NULL, // ImageIdName
0, // Version
@ -174,6 +175,7 @@ GetImageTypeIdGuid (
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): FmpDeviceLib GetImageTypeIdGuidPtr() returned invalid GUID\n", mImageIdName));
Status = EFI_NOT_FOUND;
}
if (EFI_ERROR (Status)) {
ImageTypeIdGuidSize = PcdGetSize (PcdFmpDeviceImageTypeIdGuid);
if (ImageTypeIdGuidSize == sizeof (EFI_GUID)) {
@ -183,6 +185,7 @@ GetImageTypeIdGuid (
FmpDeviceLibGuid = &gEfiCallerIdGuid;
}
}
return FmpDeviceLibGuid;
}
@ -492,7 +495,8 @@ GetTheImageInfo (
// Confirm that buffer isn't null
//
if ( (ImageInfo == NULL) || (DescriptorVersion == NULL) || (DescriptorCount == NULL) || (DescriptorSize == NULL)
|| (PackageVersion == NULL)) {
|| (PackageVersion == NULL))
{
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): GetImageInfo() - Pointer Parameter is NULL.\n", mImageIdName));
Status = EFI_INVALID_PARAMETER;
goto cleanup;
@ -606,6 +610,7 @@ GetTheImage (
if (EFI_ERROR (Status)) {
Size = 0;
}
if (*ImageSize < Size) {
*ImageSize = Size;
DEBUG ((DEBUG_VERBOSE, "FmpDxe(%s): GetImage() - ImageSize is to small.\n", mImageIdName));
@ -650,8 +655,9 @@ GetFmpHeader (
//
// Check to make sure that operation can be safely performed.
//
if (((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) + AdditionalHeaderSize < (UINTN)Image || \
((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) + AdditionalHeaderSize >= (UINTN)Image + ImageSize) {
if ((((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) + AdditionalHeaderSize < (UINTN)Image) || \
(((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) + AdditionalHeaderSize >= (UINTN)Image + ImageSize))
{
//
// Pointer overflow. Invalid image.
//
@ -696,9 +702,10 @@ GetAllHeaderSize (
//
// Check to make sure that operation can be safely performed.
//
if (CalculatedSize < sizeof (Image->MonotonicCount) ||
CalculatedSize < AdditionalHeaderSize ||
CalculatedSize < Image->AuthInfo.Hdr.dwLength ) {
if ((CalculatedSize < sizeof (Image->MonotonicCount)) ||
(CalculatedSize < AdditionalHeaderSize) ||
(CalculatedSize < Image->AuthInfo.Hdr.dwLength))
{
//
// Integer overflow. Invalid image.
//
@ -849,7 +856,7 @@ CheckTheImageInternal (
PublicKeyDataXdr = PcdGetPtr (PcdFmpDevicePkcs7CertBufferXdr);
PublicKeyDataXdrEnd = PublicKeyDataXdr + PcdGetSize (PcdFmpDevicePkcs7CertBufferXdr);
if (PublicKeyDataXdr == NULL || (PublicKeyDataXdr == PublicKeyDataXdrEnd)) {
if ((PublicKeyDataXdr == NULL) || (PublicKeyDataXdr == PublicKeyDataXdrEnd)) {
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Invalid certificate, skipping it.\n", mImageIdName));
Status = EFI_ABORTED;
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DRIVER_ERROR_INVALID_CERTIFICATE;
@ -878,6 +885,7 @@ CheckTheImageInternal (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DRIVER_ERROR_INVALID_KEY_LENGTH_VALUE;
break;
}
//
// Read key length stored in big-endian format
//
@ -895,6 +903,7 @@ CheckTheImageInternal (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DRIVER_ERROR_INVALID_KEY_LENGTH;
break;
}
PublicKeyData = PublicKeyDataXdr;
Status = AuthenticateFmpImage (
(EFI_FIRMWARE_IMAGE_AUTHENTICATION *)Image,
@ -905,6 +914,7 @@ CheckTheImageInternal (
if (!EFI_ERROR (Status)) {
break;
}
PublicKeyDataXdr += PublicKeyDataLength;
PublicKeyDataXdr = (UINT8 *)ALIGN_POINTER (PublicKeyDataXdr, sizeof (UINT32));
}
@ -917,6 +927,7 @@ CheckTheImageInternal (
} else {
*LastAttemptStatus = LAST_ATTEMPT_STATUS_DRIVER_ERROR_IMAGE_AUTH_FAILURE;
}
goto cleanup;
}
@ -955,6 +966,7 @@ CheckTheImageInternal (
*LastAttemptStatus = LAST_ATTEMPT_STATUS_DRIVER_ERROR_GET_FMP_HEADER;
goto cleanup;
}
Status = GetFmpPayloadHeaderVersion (FmpPayloadHeader, FmpPayloadSize, &Version);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): CheckTheImage() - GetFmpPayloadHeaderVersion failed %r.\n", mImageIdName, Status));
@ -1020,6 +1032,7 @@ CheckTheImageInternal (
*LastAttemptStatus = LAST_ATTEMPT_STATUS_DRIVER_ERROR_GET_ALL_HEADER_SIZE;
goto cleanup;
}
RawSize = ImageSize - AllHeaderSize;
//
@ -1034,7 +1047,8 @@ CheckTheImageInternal (
// [LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE, LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MAX_ERROR_CODE_VALUE]
//
if ((*LastAttemptStatus < LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE) ||
(*LastAttemptStatus > LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MAX_ERROR_CODE_VALUE)) {
(*LastAttemptStatus > LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MAX_ERROR_CODE_VALUE))
{
DEBUG (
(DEBUG_ERROR,
"FmpDxe(%s): CheckTheImage() - LastAttemptStatus %d from FmpDeviceCheckImageWithStatus() is invalid.\n",
@ -1234,6 +1248,7 @@ SetTheImage (
Status = EFI_ABORTED;
goto cleanup;
}
Status = GetFmpPayloadHeaderVersion (FmpHeader, FmpPayloadSize, &IncomingFwVersion);
if (!EFI_ERROR (Status)) {
//
@ -1242,7 +1257,6 @@ SetTheImage (
SetLastAttemptVersionInVariable (Private, IncomingFwVersion);
}
if (Updateable != IMAGE_UPDATABLE_VALID) {
DEBUG (
(DEBUG_ERROR,
@ -1252,6 +1266,7 @@ SetTheImage (
if (Private->DependenciesSatisfied == FALSE) {
LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_UNSATISFIED_DEPENDENCIES;
}
Status = EFI_ABORTED;
goto cleanup;
}
@ -1282,6 +1297,7 @@ SetTheImage (
LastAttemptStatus = LAST_ATTEMPT_STATUS_DRIVER_ERROR_CHECK_POWER_API;
goto cleanup;
}
if (!BooleanValue) {
Status = EFI_ABORTED;
DEBUG (
@ -1303,6 +1319,7 @@ SetTheImage (
LastAttemptStatus = LAST_ATTEMPT_STATUS_DRIVER_ERROR_CHECK_SYS_THERMAL_API;
goto cleanup;
}
if (!BooleanValue) {
Status = EFI_ABORTED;
LastAttemptStatus = LAST_ATTEMPT_STATUS_DRIVER_ERROR_THERMAL;
@ -1324,6 +1341,7 @@ SetTheImage (
LastAttemptStatus = LAST_ATTEMPT_STATUS_DRIVER_ERROR_CHECK_SYS_ENV_API;
goto cleanup;
}
if (!BooleanValue) {
Status = EFI_ABORTED;
LastAttemptStatus = LAST_ATTEMPT_STATUS_DRIVER_ERROR_SYSTEM_ENV;
@ -1385,7 +1403,8 @@ SetTheImage (
// [LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE, LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MAX_ERROR_CODE_VALUE]
//
if ((LastAttemptStatus < LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE) ||
(LastAttemptStatus > LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MAX_ERROR_CODE_VALUE)) {
(LastAttemptStatus > LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MAX_ERROR_CODE_VALUE))
{
DEBUG (
(DEBUG_ERROR,
"FmpDxe(%s): SetTheImage() - LastAttemptStatus %d from FmpDeviceSetImageWithStatus() is invalid.\n",
@ -1406,6 +1425,7 @@ SetTheImage (
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): SetTheImage() SaveFmpDependency from FmpDependencyCheckLib failed. (%r)\n", mImageIdName, Status));
}
Status = EFI_SUCCESS;
}
@ -1588,6 +1608,7 @@ FmpDxeLockEventNotify (
DEBUG ((DEBUG_WARN, "FmpDxe(%s): FmpDeviceLock() returned error. Status = %r\n", mImageIdName, Status));
}
}
Private->FmpDeviceLocked = TRUE;
}
}
@ -1682,6 +1703,7 @@ InstallFmpInstance (
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Failed to register notification. Status = %r\n", mImageIdName, Status));
}
ASSERT_EFI_ERROR (Status);
} else {
DEBUG ((DEBUG_VERBOSE, "FmpDxe(%s): Not registering notification to call FmpDeviceLock() because mfg mode\n", mImageIdName));
@ -1692,8 +1714,10 @@ InstallFmpInstance (
//
Status = gBS->InstallMultipleProtocolInterfaces (
&Private->Handle,
&gEfiFirmwareManagementProtocolGuid, &Private->Fmp,
&gEdkiiFirmwareManagementProgressProtocolGuid, &mFmpProgress,
&gEfiFirmwareManagementProtocolGuid,
&Private->Fmp,
&gEdkiiFirmwareManagementProgressProtocolGuid,
&mFmpProgress,
NULL
);
if (EFI_ERROR (Status)) {
@ -1708,27 +1732,35 @@ cleanup:
if (Private->FmpDeviceLockEvent != NULL) {
gBS->CloseEvent (Private->FmpDeviceLockEvent);
}
if (Private->Descriptor.VersionName != NULL) {
FreePool (Private->Descriptor.VersionName);
}
if (Private->FmpDeviceContext != NULL) {
FmpDeviceSetContext (NULL, &Private->FmpDeviceContext);
}
if (Private->VersionVariableName != NULL) {
FreePool (Private->VersionVariableName);
}
if (Private->LsvVariableName != NULL) {
FreePool (Private->LsvVariableName);
}
if (Private->LastAttemptStatusVariableName != NULL) {
FreePool (Private->LastAttemptStatusVariableName);
}
if (Private->LastAttemptVersionVariableName != NULL) {
FreePool (Private->LastAttemptVersionVariableName);
}
if (Private->FmpStateVariableName != NULL) {
FreePool (Private->FmpStateVariableName);
}
FreePool (Private);
}
}
@ -1778,8 +1810,10 @@ UninstallFmpInstance (
Status = gBS->UninstallMultipleProtocolInterfaces (
Private->Handle,
&gEfiFirmwareManagementProtocolGuid, &Private->Fmp,
&gEdkiiFirmwareManagementProgressProtocolGuid, &mFmpProgress,
&gEfiFirmwareManagementProtocolGuid,
&Private->Fmp,
&gEdkiiFirmwareManagementProgressProtocolGuid,
&mFmpProgress,
NULL
);
if (EFI_ERROR (Status)) {
@ -1790,24 +1824,31 @@ UninstallFmpInstance (
if (Private->Descriptor.VersionName != NULL) {
FreePool (Private->Descriptor.VersionName);
}
if (Private->FmpDeviceContext != NULL) {
FmpDeviceSetContext (NULL, &Private->FmpDeviceContext);
}
if (Private->VersionVariableName != NULL) {
FreePool (Private->VersionVariableName);
}
if (Private->LsvVariableName != NULL) {
FreePool (Private->LsvVariableName);
}
if (Private->LastAttemptStatusVariableName != NULL) {
FreePool (Private->LastAttemptStatusVariableName);
}
if (Private->LastAttemptVersionVariableName != NULL) {
FreePool (Private->LastAttemptVersionVariableName);
}
if (Private->FmpStateVariableName != NULL) {
FreePool (Private->FmpStateVariableName);
}
FreePool (Private);
return EFI_SUCCESS;
@ -1832,6 +1873,7 @@ FmpDxeLibDestructor (
if (mFmpSingleInstance) {
return UninstallFmpInstance (ImageHandle);
}
return EFI_SUCCESS;
}
@ -1866,7 +1908,7 @@ FmpDxeEntryPoint (
// Get the ImageIdName value for the EFI_FIRMWARE_IMAGE_DESCRIPTOR from a PCD.
//
mImageIdName = (CHAR16 *)PcdGetPtr (PcdFmpDeviceImageIdName);
if (PcdGetSize (PcdFmpDeviceImageIdName) <= 2 || mImageIdName[0] == 0) {
if ((PcdGetSize (PcdFmpDeviceImageIdName) <= 2) || (mImageIdName[0] == 0)) {
//
// PcdFmpDeviceImageIdName must be set to a non-empty Unicode string
//
@ -1895,6 +1937,7 @@ FmpDxeEntryPoint (
if (PcdGetSize (PcdFmpDeviceLockEventGuid) == sizeof (EFI_GUID)) {
mLockGuid = (EFI_GUID *)PcdGetPtr (PcdFmpDeviceLockEventGuid);
}
DEBUG ((DEBUG_INFO, "FmpDxe(%s): Lock GUID: %g\n", mImageIdName, mLockGuid));
//

View File

@ -183,7 +183,6 @@ GetTheImage (
IN OUT UINTN *ImageSize
);
/**
Checks if the firmware image is valid for the device.

View File

@ -45,10 +45,11 @@ GetFmpVariable (
(VOID **)&Buffer,
&Size
);
if (!EFI_ERROR (Status) && Size == sizeof (*Value) && Buffer != NULL) {
if (!EFI_ERROR (Status) && (Size == sizeof (*Value)) && (Buffer != NULL)) {
*Valid = TRUE;
*Value = *Buffer;
}
if (Buffer != NULL) {
FreePool (Buffer);
}
@ -111,17 +112,20 @@ GetFmpControllerState (
(VOID **)&FmpControllerState,
&Size
);
if (EFI_ERROR (Status) || FmpControllerState == NULL) {
if (EFI_ERROR (Status) || (FmpControllerState == NULL)) {
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Failed to get the controller state. Status = %r\n", mImageIdName, Status));
} else {
if (Size == sizeof (*FmpControllerState)) {
return FmpControllerState;
}
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Getting controller state returned a size different than expected. Size = 0x%x\n", mImageIdName, Size));
}
if (FmpControllerState != NULL) {
FreePool (FmpControllerState);
}
return NULL;
}
@ -160,9 +164,11 @@ GenerateFmpVariableName (
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Failed to generate variable name %s.\n", mImageIdName, BaseVariableName));
return VariableName;
}
if (HardwareInstance == 0) {
return VariableName;
}
UnicodeValueToStringS (
&VariableName[StrLen (BaseVariableName)],
Size,
@ -209,15 +215,19 @@ GenerateFmpVariableNames (
if (Private->VersionVariableName != NULL) {
FreePool (Private->VersionVariableName);
}
if (Private->LsvVariableName != NULL) {
FreePool (Private->LsvVariableName);
}
if (Private->LastAttemptStatusVariableName != NULL) {
FreePool (Private->LastAttemptStatusVariableName);
}
if (Private->LastAttemptVersionVariableName != NULL) {
FreePool (Private->LastAttemptVersionVariableName);
}
if (Private->FmpStateVariableName != NULL) {
FreePool (Private->FmpStateVariableName);
}
@ -336,15 +346,19 @@ GetVersionFromVariable (
if (FmpControllerState != NULL) {
if (FmpControllerState->VersionValid) {
Value = FmpControllerState->Version;
DEBUG ((DEBUG_INFO, "FmpDxe(%s): Get variable %g %s Version %08x\n",
DEBUG ((
DEBUG_INFO,
"FmpDxe(%s): Get variable %g %s Version %08x\n",
mImageIdName,
&gEfiCallerIdGuid,
Private->FmpStateVariableName,
Value
));
}
FreePool (FmpControllerState);
}
return Value;
}
@ -375,15 +389,19 @@ GetLowestSupportedVersionFromVariable (
if (FmpControllerState != NULL) {
if (FmpControllerState->LsvValid) {
Value = FmpControllerState->Lsv;
DEBUG ((DEBUG_INFO, "FmpDxe(%s): Get variable %g %s LowestSupportedVersion %08x\n",
DEBUG ((
DEBUG_INFO,
"FmpDxe(%s): Get variable %g %s LowestSupportedVersion %08x\n",
mImageIdName,
&gEfiCallerIdGuid,
Private->FmpStateVariableName,
Value
));
}
FreePool (FmpControllerState);
}
return Value;
}
@ -413,15 +431,19 @@ GetLastAttemptStatusFromVariable (
if (FmpControllerState != NULL) {
if (FmpControllerState->LastAttemptStatusValid) {
Value = FmpControllerState->LastAttemptStatus;
DEBUG ((DEBUG_INFO, "FmpDxe(%s): Get variable %g %s LastAttemptStatus %08x\n",
DEBUG ((
DEBUG_INFO,
"FmpDxe(%s): Get variable %g %s LastAttemptStatus %08x\n",
mImageIdName,
&gEfiCallerIdGuid,
Private->FmpStateVariableName,
Value
));
}
FreePool (FmpControllerState);
}
return Value;
}
@ -451,15 +473,19 @@ GetLastAttemptVersionFromVariable (
if (FmpControllerState != NULL) {
if (FmpControllerState->LastAttemptVersionValid) {
Value = FmpControllerState->LastAttemptVersion;
DEBUG ((DEBUG_INFO, "FmpDxe(%s): Get variable %g %s LastAttemptVersion %08x\n",
DEBUG ((
DEBUG_INFO,
"FmpDxe(%s): Get variable %g %s LastAttemptVersion %08x\n",
mImageIdName,
&gEfiCallerIdGuid,
Private->FmpStateVariableName,
Value
));
}
FreePool (FmpControllerState);
}
return Value;
}
@ -495,9 +521,11 @@ SetVersionInVariable (
if (!FmpControllerState->VersionValid) {
Update = TRUE;
}
if (FmpControllerState->Version != Version) {
Update = TRUE;
}
if (!Update) {
DEBUG ((DEBUG_INFO, "FmpDxe(%s): No need to update controller state. Same value as before.\n", mImageIdName));
} else {
@ -513,7 +541,9 @@ SetVersionInVariable (
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Failed to update controller state. Status = %r\n", mImageIdName, Status));
} else {
DEBUG ((DEBUG_INFO, "FmpDxe(%s): Set variable %g %s Version %08x\n",
DEBUG ((
DEBUG_INFO,
"FmpDxe(%s): Set variable %g %s Version %08x\n",
mImageIdName,
&gEfiCallerIdGuid,
Private->FmpStateVariableName,
@ -521,6 +551,7 @@ SetVersionInVariable (
));
}
}
FreePool (FmpControllerState);
}
@ -558,9 +589,11 @@ SetLowestSupportedVersionInVariable (
if (!FmpControllerState->LsvValid) {
Update = TRUE;
}
if (FmpControllerState->Lsv < LowestSupportedVersion) {
Update = TRUE;
}
if (!Update) {
DEBUG ((DEBUG_INFO, "FmpDxe(%s): No need to update controller state. Same value as before.\n", mImageIdName));
} else {
@ -576,7 +609,9 @@ SetLowestSupportedVersionInVariable (
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Failed to update controller state. Status = %r\n", mImageIdName, Status));
} else {
DEBUG ((DEBUG_INFO, "FmpDxe(%s): Set variable %g %s LowestSupportedVersion %08x\n",
DEBUG ((
DEBUG_INFO,
"FmpDxe(%s): Set variable %g %s LowestSupportedVersion %08x\n",
mImageIdName,
&gEfiCallerIdGuid,
Private->FmpStateVariableName,
@ -584,6 +619,7 @@ SetLowestSupportedVersionInVariable (
));
}
}
FreePool (FmpControllerState);
}
@ -621,9 +657,11 @@ SetLastAttemptStatusInVariable (
if (!FmpControllerState->LastAttemptStatusValid) {
Update = TRUE;
}
if (FmpControllerState->LastAttemptStatus != LastAttemptStatus) {
Update = TRUE;
}
if (!Update) {
DEBUG ((DEBUG_INFO, "FmpDxe(%s): No need to update controller state. Same value as before.\n", mImageIdName));
} else {
@ -639,7 +677,9 @@ SetLastAttemptStatusInVariable (
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Failed to update controller state. Status = %r\n", mImageIdName, Status));
} else {
DEBUG ((DEBUG_INFO, "FmpDxe(%s): Set variable %g %s LastAttemptStatus %08x\n",
DEBUG ((
DEBUG_INFO,
"FmpDxe(%s): Set variable %g %s LastAttemptStatus %08x\n",
mImageIdName,
&gEfiCallerIdGuid,
Private->FmpStateVariableName,
@ -647,6 +687,7 @@ SetLastAttemptStatusInVariable (
));
}
}
FreePool (FmpControllerState);
}
@ -684,9 +725,11 @@ SetLastAttemptVersionInVariable (
if (!FmpControllerState->LastAttemptVersionValid) {
Update = TRUE;
}
if (FmpControllerState->LastAttemptVersion != LastAttemptVersion) {
Update = TRUE;
}
if (!Update) {
DEBUG ((DEBUG_INFO, "FmpDxe(%s): No need to update controller state. Same value as before.\n", mImageIdName));
} else {
@ -702,7 +745,9 @@ SetLastAttemptVersionInVariable (
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Failed to update controller state. Status = %r\n", mImageIdName, Status));
} else {
DEBUG ((DEBUG_INFO, "FmpDxe(%s): Set variable %g %s LastAttemptVersion %08x\n",
DEBUG ((
DEBUG_INFO,
"FmpDxe(%s): Set variable %g %s LastAttemptVersion %08x\n",
mImageIdName,
&gEfiCallerIdGuid,
Private->FmpStateVariableName,
@ -710,6 +755,7 @@ SetLastAttemptVersionInVariable (
));
}
}
FreePool (FmpControllerState);
}
@ -737,25 +783,31 @@ LockFmpVariable (
EFI_STATUS Status;
// If success, go ahead and set the policies to protect the target variables.
Status = RegisterBasicVariablePolicy (VariablePolicy,
Status = RegisterBasicVariablePolicy (
VariablePolicy,
&gEfiCallerIdGuid,
VariableName,
VARIABLE_POLICY_NO_MIN_SIZE,
VARIABLE_POLICY_NO_MAX_SIZE,
VARIABLE_POLICY_NO_MUST_ATTR,
VARIABLE_POLICY_NO_CANT_ATTR,
VARIABLE_POLICY_TYPE_LOCK_NOW);
VARIABLE_POLICY_TYPE_LOCK_NOW
);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Failed to lock variable %g %s. Status = %r\n",
DEBUG ((
DEBUG_ERROR,
"FmpDxe(%s): Failed to lock variable %g %s. Status = %r\n",
mImageIdName,
&gEfiCallerIdGuid,
VariableName,
Status
));
}
if (EFI_ERROR (PreviousStatus)) {
return PreviousStatus;
}
return Status;
}

View File

@ -36,6 +36,7 @@ LookupCapsuleUpdatePolicyProtocol (
if (mCapsuleUpdatePolicy != NULL) {
return TRUE;
}
Status = gBS->LocateProtocol (
&gEdkiiCapsuleUpdatePolicyProtocolGuid,
NULL,
@ -45,6 +46,7 @@ LookupCapsuleUpdatePolicyProtocol (
mCapsuleUpdatePolicy = NULL;
return FALSE;
}
return TRUE;
}
@ -70,6 +72,7 @@ CheckSystemPower (
if (LookupCapsuleUpdatePolicyProtocol ()) {
return mCapsuleUpdatePolicy->CheckSystemPower (mCapsuleUpdatePolicy, Good);
}
*Good = TRUE;
return EFI_SUCCESS;
}
@ -96,6 +99,7 @@ CheckSystemThermal (
if (LookupCapsuleUpdatePolicyProtocol ()) {
return mCapsuleUpdatePolicy->CheckSystemThermal (mCapsuleUpdatePolicy, Good);
}
*Good = TRUE;
return EFI_SUCCESS;
}
@ -122,6 +126,7 @@ CheckSystemEnvironment (
if (LookupCapsuleUpdatePolicyProtocol ()) {
return mCapsuleUpdatePolicy->CheckSystemEnvironment (mCapsuleUpdatePolicy, Good);
}
*Good = TRUE;
return EFI_SUCCESS;
}
@ -145,6 +150,7 @@ IsLowestSupportedVersionCheckRequired (
if (LookupCapsuleUpdatePolicyProtocol ()) {
return mCapsuleUpdatePolicy->IsLowestSupportedVersionCheckRequired (mCapsuleUpdatePolicy);
}
return TRUE;
}
@ -167,5 +173,6 @@ IsLockFmpDeviceAtLockEventGuidRequired (
if (LookupCapsuleUpdatePolicyProtocol ()) {
return mCapsuleUpdatePolicy->IsLockFmpDeviceAtLockEventGuidRequired (mCapsuleUpdatePolicy);
}
return TRUE;
}

View File

@ -194,6 +194,7 @@ cleanup:
FreePool (FmpImageInfoBuf[Index]);
}
}
FreePool (FmpImageInfoBuf);
}

View File

@ -128,7 +128,7 @@ Push (
//
// Check Type
//
if (Type != BooleanType && Type != VersionType) {
if ((Type != BooleanType) && (Type != VersionType)) {
return EFI_INVALID_PARAMETER;
}
@ -191,6 +191,7 @@ Pop (
DEBUG ((DEBUG_ERROR, "EvaluateDependency: Popped element type is mismatched!\n"));
return EFI_INVALID_PARAMETER;
}
return EFI_SUCCESS;
}
@ -239,11 +240,11 @@ EvaluateDependency (
//
// Check if parameter is valid.
//
if (Dependencies == NULL || DependenciesSize == 0) {
if ((Dependencies == NULL) || (DependenciesSize == 0)) {
return FALSE;
}
if (FmpVersions == NULL && FmpVersionsCount > 0) {
if ((FmpVersions == NULL) && (FmpVersionsCount > 0)) {
return FALSE;
}
@ -255,8 +256,7 @@ EvaluateDependency (
Iterator = (UINT8 *)Dependencies->Dependencies;
while (Iterator < (UINT8 *)Dependencies->Dependencies + DependenciesSize) {
switch (*Iterator)
{
switch (*Iterator) {
case EFI_FMP_DEP_PUSH_GUID:
if (Iterator + sizeof (EFI_GUID) >= (UINT8 *)Dependencies->Dependencies + DependenciesSize) {
DEBUG ((DEBUG_ERROR, "EvaluateDependency: GUID extends beyond end of dependency expression!\n"));
@ -274,14 +274,17 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
break;
}
}
if (Index == FmpVersionsCount) {
DEBUG ((DEBUG_ERROR, "EvaluateDependency: %g is not found!\n", &ImageTypeId));
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_FMP_NOT_FOUND;
goto Error;
}
break;
case EFI_FMP_DEP_PUSH_VERSION:
if (Iterator + sizeof (UINT32) >= (UINT8 *)Dependencies->Dependencies + DependenciesSize ) {
@ -296,6 +299,7 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
Iterator = Iterator + sizeof (UINT32);
break;
case EFI_FMP_DEP_VERSION_STR:
@ -305,6 +309,7 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_VERSION_STR_BEYOND_DEPEX;
goto Error;
}
break;
case EFI_FMP_DEP_AND:
Status = Pop (&Element1, BooleanType);
@ -312,16 +317,19 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = Pop (&Element2, BooleanType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = Push (Element1.Value.Boolean & Element2.Value.Boolean, BooleanType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
break;
case EFI_FMP_DEP_OR:
Status = Pop (&Element1, BooleanType);
@ -329,16 +337,19 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = Pop (&Element2, BooleanType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = Push (Element1.Value.Boolean | Element2.Value.Boolean, BooleanType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
break;
case EFI_FMP_DEP_NOT:
Status = Pop (&Element1, BooleanType);
@ -346,11 +357,13 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = Push (!(Element1.Value.Boolean), BooleanType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
break;
case EFI_FMP_DEP_TRUE:
Status = Push (TRUE, BooleanType);
@ -358,6 +371,7 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
break;
case EFI_FMP_DEP_FALSE:
Status = Push (FALSE, BooleanType);
@ -365,6 +379,7 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
break;
case EFI_FMP_DEP_EQ:
Status = Pop (&Element1, VersionType);
@ -372,16 +387,19 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = Pop (&Element2, VersionType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = (Element1.Value.Version == Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
break;
case EFI_FMP_DEP_GT:
Status = Pop (&Element1, VersionType);
@ -389,16 +407,19 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = Pop (&Element2, VersionType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = (Element1.Value.Version > Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
break;
case EFI_FMP_DEP_GTE:
Status = Pop (&Element1, VersionType);
@ -406,16 +427,19 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = Pop (&Element2, VersionType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = (Element1.Value.Version >= Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
break;
case EFI_FMP_DEP_LT:
Status = Pop (&Element1, VersionType);
@ -423,16 +447,19 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = Pop (&Element2, VersionType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = (Element1.Value.Version < Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
break;
case EFI_FMP_DEP_LTE:
Status = Pop (&Element1, VersionType);
@ -440,16 +467,19 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = Pop (&Element2, VersionType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
Status = (Element1.Value.Version <= Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);
if (EFI_ERROR (Status)) {
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;
goto Error;
}
break;
case EFI_FMP_DEP_END:
Status = Pop (&Element1, BooleanType);
@ -457,12 +487,14 @@ EvaluateDependency (
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;
goto Error;
}
return Element1.Value.Boolean;
default:
DEBUG ((DEBUG_ERROR, "EvaluateDependency: Unknown Opcode - %02x!\n", *Iterator));
LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_UNKNOWN_OPCODE;
goto Error;
}
Iterator++;
}
@ -513,8 +545,7 @@ ValidateDependency (
Depex = Dependencies->Dependencies;
while (Depex < Dependencies->Dependencies + MaxDepexSize) {
switch (*Depex)
{
switch (*Depex) {
case EFI_FMP_DEP_PUSH_GUID:
Depex += sizeof (EFI_GUID) + 1;
break;
@ -541,6 +572,7 @@ ValidateDependency (
if (DepexSize != NULL) {
*DepexSize = (UINT32)(Depex - Dependencies->Dependencies);
}
return TRUE;
default:
return FALSE;
@ -587,14 +619,16 @@ GetImageDependency (
//
// Check to make sure that operation can be safely performed.
//
if (((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) < (UINTN)Image || \
((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) >= (UINTN)Image + ImageSize) {
if ((((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) < (UINTN)Image) || \
(((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) >= (UINTN)Image + ImageSize))
{
//
// Pointer overflow. Invalid image.
//
if (LastAttemptStatus != NULL) {
*LastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_GET_DEPEX_FAILURE;
}
return NULL;
}

View File

@ -131,6 +131,7 @@ FmpDeviceGetSize (
if (Size == NULL) {
return EFI_INVALID_PARAMETER;
}
*Size = 0;
return EFI_SUCCESS;
}
@ -188,9 +189,10 @@ FmpDeviceGetAttributes (
OUT UINT64 *Setting
)
{
if (Supported == NULL || Setting == NULL) {
if ((Supported == NULL) || (Setting == NULL)) {
return EFI_INVALID_PARAMETER;
}
*Supported = 0;
*Setting = 0;
return EFI_SUCCESS;
@ -268,6 +270,7 @@ FmpDeviceGetVersionString (
if (VersionString == NULL) {
return EFI_INVALID_PARAMETER;
}
*VersionString = NULL;
return EFI_UNSUPPORTED;
}

View File

@ -61,14 +61,15 @@ GetFmpPayloadHeaderSize (
FmpPayloadHeader = NULL;
if (Header == NULL || Size == NULL) {
if ((Header == NULL) || (Size == NULL)) {
return EFI_INVALID_PARAMETER;
}
FmpPayloadHeader = (FMP_PAYLOAD_HEADER *)Header;
if ((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) < (UINTN)FmpPayloadHeader ||
(UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) >= (UINTN)FmpPayloadHeader + FmpPayloadSize ||
FmpPayloadHeader->HeaderSize < sizeof (FMP_PAYLOAD_HEADER)) {
if (((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) < (UINTN)FmpPayloadHeader) ||
((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) >= (UINTN)FmpPayloadHeader + FmpPayloadSize) ||
(FmpPayloadHeader->HeaderSize < sizeof (FMP_PAYLOAD_HEADER)))
{
return EFI_INVALID_PARAMETER;
}
@ -106,14 +107,15 @@ GetFmpPayloadHeaderVersion (
FmpPayloadHeader = NULL;
if (Header == NULL || Version == NULL) {
if ((Header == NULL) || (Version == NULL)) {
return EFI_INVALID_PARAMETER;
}
FmpPayloadHeader = (FMP_PAYLOAD_HEADER *)Header;
if ((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) < (UINTN)FmpPayloadHeader ||
(UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) >= (UINTN)FmpPayloadHeader + FmpPayloadSize ||
FmpPayloadHeader->HeaderSize < sizeof (FMP_PAYLOAD_HEADER)) {
if (((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) < (UINTN)FmpPayloadHeader) ||
((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) >= (UINTN)FmpPayloadHeader + FmpPayloadSize) ||
(FmpPayloadHeader->HeaderSize < sizeof (FMP_PAYLOAD_HEADER)))
{
return EFI_INVALID_PARAMETER;
}
@ -151,14 +153,15 @@ GetFmpPayloadHeaderLowestSupportedVersion (
FmpPayloadHeader = NULL;
if (Header == NULL || LowestSupportedVersion == NULL) {
if ((Header == NULL) || (LowestSupportedVersion == NULL)) {
return EFI_INVALID_PARAMETER;
}
FmpPayloadHeader = (FMP_PAYLOAD_HEADER *)Header;
if ((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) < (UINTN)FmpPayloadHeader ||
(UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) >= (UINTN)FmpPayloadHeader + FmpPayloadSize ||
FmpPayloadHeader->HeaderSize < sizeof (FMP_PAYLOAD_HEADER)) {
if (((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) < (UINTN)FmpPayloadHeader) ||
((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) >= (UINTN)FmpPayloadHeader + FmpPayloadSize) ||
(FmpPayloadHeader->HeaderSize < sizeof (FMP_PAYLOAD_HEADER)))
{
return EFI_INVALID_PARAMETER;
}

View File

@ -29,8 +29,7 @@
/// The value of pre-existing last attempt status codes should never be modified to ensure the values remain
/// consistent over time.
///
enum LAST_ATTEMPT_STATUS_EXPANDED_ERROR_LIST
{
enum LAST_ATTEMPT_STATUS_EXPANDED_ERROR_LIST {
///
/// Last attempt status codes used in FmpDxe
///