StandaloneMmPkg: Fix ECC error 3002 in StandaloneMmCpu

Bugzilla: 3150 (https://bugzilla.tianocore.org/show_bug.cgi?id=3150)

Fix the ECC tool reported error "[3002] Non-Boolean comparisons
should use a compare operator".

Also fix the following:
 - add curly braces for 'if' condition statements to comply
   with the coding standard.
 - The value returned by GET_GUID_HOB_DATA() is stored in
   *HobData. Therefore, check *HobData against NULL. The
   original code was checking HobData which is incorrect.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
Sami Mujawar 2020-12-03 18:33:58 +00:00 committed by mergify[bot]
parent 9ef62f5078
commit a9da96ac2a
2 changed files with 20 additions and 10 deletions

View File

@ -1,7 +1,7 @@
/** @file /** @file
Copyright (c) 2016 HP Development Company, L.P. Copyright (c) 2016 HP Development Company, L.P.
Copyright (c) 2016 - 2018, ARM Limited. All rights reserved. Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent SPDX-License-Identifier: BSD-2-Clause-Patent
@ -84,12 +84,18 @@ PiMmStandaloneArmTfCpuDriverEntry (
} }
// Perform parameter validation of NsCommBufferAddr // Perform parameter validation of NsCommBufferAddr
if (NsCommBufferAddr && (NsCommBufferAddr < mNsCommBuffer.PhysicalStart)) if (NsCommBufferAddr == (UINTN)NULL) {
return EFI_INVALID_PARAMETER;
}
if (NsCommBufferAddr < mNsCommBuffer.PhysicalStart) {
return EFI_ACCESS_DENIED; return EFI_ACCESS_DENIED;
}
if ((NsCommBufferAddr + sizeof (EFI_MM_COMMUNICATE_HEADER)) >= if ((NsCommBufferAddr + sizeof (EFI_MM_COMMUNICATE_HEADER)) >=
(mNsCommBuffer.PhysicalStart + mNsCommBuffer.PhysicalSize)) (mNsCommBuffer.PhysicalStart + mNsCommBuffer.PhysicalSize)) {
return EFI_INVALID_PARAMETER; return EFI_INVALID_PARAMETER;
}
// Find out the size of the buffer passed // Find out the size of the buffer passed
NsCommBufferSize = ((EFI_MM_COMMUNICATE_HEADER *) NsCommBufferAddr)->MessageLength + NsCommBufferSize = ((EFI_MM_COMMUNICATE_HEADER *) NsCommBufferAddr)->MessageLength +
@ -97,9 +103,9 @@ PiMmStandaloneArmTfCpuDriverEntry (
// perform bounds check. // perform bounds check.
if (NsCommBufferAddr + NsCommBufferSize >= if (NsCommBufferAddr + NsCommBufferSize >=
mNsCommBuffer.PhysicalStart + mNsCommBuffer.PhysicalSize) mNsCommBuffer.PhysicalStart + mNsCommBuffer.PhysicalSize) {
return EFI_ACCESS_DENIED; return EFI_ACCESS_DENIED;
}
// Now that the secure world can see the normal world buffer, allocate // Now that the secure world can see the normal world buffer, allocate
// memory to copy the communication buffer to the secure world. // memory to copy the communication buffer to the secure world.
@ -192,8 +198,9 @@ PiMmCpuTpFwRootMmiHandler (
ASSERT (CommBufferSize == NULL); ASSERT (CommBufferSize == NULL);
CpuNumber = mMmst->CurrentlyExecutingCpu; CpuNumber = mMmst->CurrentlyExecutingCpu;
if (!PerCpuGuidedEventContext[CpuNumber]) if (PerCpuGuidedEventContext[CpuNumber] == NULL) {
return EFI_NOT_FOUND; return EFI_NOT_FOUND;
}
DEBUG ((DEBUG_INFO, "CommBuffer - 0x%x, CommBufferSize - 0x%x\n", DEBUG ((DEBUG_INFO, "CommBuffer - 0x%x, CommBufferSize - 0x%x\n",
PerCpuGuidedEventContext[CpuNumber], PerCpuGuidedEventContext[CpuNumber],

View File

@ -2,7 +2,7 @@
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
Copyright (c) 2016 HP Development Company, L.P. Copyright (c) 2016 HP Development Company, L.P.
Copyright (c) 2016 - 2018, ARM Limited. All rights reserved. Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent SPDX-License-Identifier: BSD-2-Clause-Patent
@ -53,16 +53,19 @@ GetGuidedHobData (
{ {
EFI_HOB_GUID_TYPE *Hob; EFI_HOB_GUID_TYPE *Hob;
if (!HobList || !HobGuid || !HobData) if ((HobList == NULL) || (HobGuid == NULL) || (HobData == NULL)) {
return EFI_INVALID_PARAMETER; return EFI_INVALID_PARAMETER;
}
Hob = GetNextGuidHob (HobGuid, HobList); Hob = GetNextGuidHob (HobGuid, HobList);
if (!Hob) if (Hob == NULL) {
return EFI_NOT_FOUND; return EFI_NOT_FOUND;
}
*HobData = GET_GUID_HOB_DATA (Hob); *HobData = GET_GUID_HOB_DATA (Hob);
if (!HobData) if (*HobData == NULL) {
return EFI_NOT_FOUND; return EFI_NOT_FOUND;
}
return EFI_SUCCESS; return EFI_SUCCESS;
} }