X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdeModulePkg%2FUniversal%2FAcpi%2FFirmwarePerformanceDataTableSmm%2FFirmwarePerformanceSmm.c;h=f3472e26f3db70e3afadb5c7cb15395d3dff7011;hb=5e5bb2a9baefcd2f231696ea94576dab5565fbfb;hp=ebf81ca6f72ce1106e1db10b5eebdd6a0efbf9ce;hpb=9d00d20ed40fb56d8b5a8e1a3f7ae3e491ceaf94;p=mirror_edk2.git diff --git a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceSmm.c b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceSmm.c index ebf81ca6f7..f3472e26f3 100644 --- a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceSmm.c +++ b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceSmm.c @@ -266,6 +266,8 @@ FpdtSmiHandler ( { EFI_STATUS Status; SMM_BOOT_RECORD_COMMUNICATE *SmmCommData; + UINTN BootRecordSize; + VOID *BootRecordData; // // If input is invalid, stop processing this SMI @@ -279,7 +281,7 @@ FpdtSmiHandler ( } if (!InternalIsAddressValid ((UINTN)CommBuffer, *CommBufferSize)) { - DEBUG ((EFI_D_ERROR, "SMM communication data buffer in SMRAM or overflow!\n")); + DEBUG ((EFI_D_ERROR, "FpdtSmiHandler: SMM communication data buffer in SMRAM or overflow!\n")); return EFI_SUCCESS; } @@ -293,7 +295,9 @@ FpdtSmiHandler ( break; case SMM_FPDT_FUNCTION_GET_BOOT_RECORD_DATA : - if (SmmCommData->BootRecordData == NULL || SmmCommData->BootRecordSize < mBootRecordSize) { + BootRecordData = SmmCommData->BootRecordData; + BootRecordSize = SmmCommData->BootRecordSize; + if (BootRecordData == NULL || BootRecordSize < mBootRecordSize) { Status = EFI_INVALID_PARAMETER; break; } @@ -302,14 +306,14 @@ FpdtSmiHandler ( // Sanity check // SmmCommData->BootRecordSize = mBootRecordSize; - if (!InternalIsAddressValid ((UINTN)SmmCommData->BootRecordData, mBootRecordSize)) { - DEBUG ((EFI_D_ERROR, "SMM Data buffer in SMRAM or overflow!\n")); + if (!InternalIsAddressValid ((UINTN)BootRecordData, mBootRecordSize)) { + DEBUG ((EFI_D_ERROR, "FpdtSmiHandler: SMM Data buffer in SMRAM or overflow!\n")); Status = EFI_ACCESS_DENIED; break; } CopyMem ( - (UINT8*)SmmCommData->BootRecordData, + (UINT8*)BootRecordData, mBootRecordBuffer, mBootRecordSize );