PcdSet## has no error status returned, then the caller has no idea about whether the set operation is successful or not. PcdSet##S were added to return error status and PcdSet## APIs were put in ifndef DISABLE_NEW_DEPRECATED_INTERFACES condition. To adopt PcdSet##S and further code development with DISABLE_NEW_DEPRECATED_INTERFACES defined, we need to Replace PcdSet## usage with PcdSet##S.
Normally, DynamicDefault PCD set is expected to be success, but DynamicHii PCD set failure is a legal case. PcdTpmInitializationPolicy/PcdTcg2HashAlgorithmBitmap/PcdTpm2HashMask/PcdTpmInstanceGuid all have set operation in PEI phase, PEI phase does not allow DynamicHii PCD set, so DynamicDefault is expected for them and use PcdSet##S to instead of PcdSet## and assert when set failure. Cc: Jiewen Yao <jiewen....@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.z...@intel.com> --- .../Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c | 4 +++- .../Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c | 4 +++- SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigPeim.c | 3 ++- SecurityPkg/Tcg/Tcg2Config/TpmDetection.c | 3 ++- SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c | 3 ++- SecurityPkg/Tcg/TrEEConfig/TpmDetection.c | 3 ++- SecurityPkg/Tcg/TrEEConfig/TrEEConfigPeim.c | 3 ++- 7 files changed, 16 insertions(+), 7 deletions(-) diff --git a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c index 8967337..4f3c8df 100644 --- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c +++ b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c @@ -205,6 +205,7 @@ RegisterHashInterfaceLib ( UINTN Index; UINT32 HashMask; UINT32 BiosSupportedHashMask; + EFI_STATUS Status; // // Check allow @@ -218,7 +219,8 @@ RegisterHashInterfaceLib ( return EFI_OUT_OF_RESOURCES; } BiosSupportedHashMask = PcdGet32 (PcdTcg2HashAlgorithmBitmap); - PcdSet32 (PcdTcg2HashAlgorithmBitmap, BiosSupportedHashMask | HashMask); + Status = PcdSet32S (PcdTcg2HashAlgorithmBitmap, BiosSupportedHashMask | HashMask); + ASSERT_EFI_ERROR (Status); // // Check duplication diff --git a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c index 98c0793..c3d4879 100644 --- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c +++ b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c @@ -258,6 +258,7 @@ RegisterHashInterfaceLib ( HASH_INTERFACE_HOB LocalHashInterfaceHob; UINT32 HashMask; UINT32 BiosSupportedHashMask; + EFI_STATUS Status; // // Check allow @@ -280,7 +281,8 @@ RegisterHashInterfaceLib ( return EFI_OUT_OF_RESOURCES; } BiosSupportedHashMask = PcdGet32 (PcdTcg2HashAlgorithmBitmap); - PcdSet32 (PcdTcg2HashAlgorithmBitmap, BiosSupportedHashMask | HashMask); + Status = PcdSet32S (PcdTcg2HashAlgorithmBitmap, BiosSupportedHashMask | HashMask); + ASSERT_EFI_ERROR (Status); // // Check duplication diff --git a/SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigPeim.c b/SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigPeim.c index 34767c0..004c7ef 100644 --- a/SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigPeim.c +++ b/SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigPeim.c @@ -132,7 +132,8 @@ Tcg2ConfigPeimEntryPoint ( for (Index = 0; Index < sizeof(mTpmInstanceId)/sizeof(mTpmInstanceId[0]); Index++) { if (TpmDevice == mTpmInstanceId[Index].TpmDevice) { Size = sizeof(mTpmInstanceId[Index].TpmInstanceGuid); - PcdSetPtr (PcdTpmInstanceGuid, &Size, &mTpmInstanceId[Index].TpmInstanceGuid); + Status = PcdSetPtrS (PcdTpmInstanceGuid, &Size, &mTpmInstanceId[Index].TpmInstanceGuid); + ASSERT_EFI_ERROR (Status); DEBUG ((EFI_D_INFO, "TpmDevice PCD: %g\n", &mTpmInstanceId[Index].TpmInstanceGuid)); break; } diff --git a/SecurityPkg/Tcg/Tcg2Config/TpmDetection.c b/SecurityPkg/Tcg/Tcg2Config/TpmDetection.c index 9e93e9c..33f3a21 100644 --- a/SecurityPkg/Tcg/Tcg2Config/TpmDetection.c +++ b/SecurityPkg/Tcg/Tcg2Config/TpmDetection.c @@ -124,6 +124,7 @@ DetectTpmDevice ( } // NO initialization needed again. - PcdSet8 (PcdTpmInitializationPolicy, 0); + Status = PcdSet8S (PcdTpmInitializationPolicy, 0); + ASSERT_EFI_ERROR (Status); return TPM_DEVICE_1_2; } diff --git a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c index ec94c24..4ecfbe3 100644 --- a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c +++ b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c @@ -410,7 +410,8 @@ SetTpm2HashMask ( } } } - PcdSet32 (PcdTpm2HashMask, ActivePcrBanks); + Status = PcdSet32S (PcdTpm2HashMask, ActivePcrBanks); + ASSERT_EFI_ERROR (Status); } /** diff --git a/SecurityPkg/Tcg/TrEEConfig/TpmDetection.c b/SecurityPkg/Tcg/TrEEConfig/TpmDetection.c index 3706c2c..805a319 100644 --- a/SecurityPkg/Tcg/TrEEConfig/TpmDetection.c +++ b/SecurityPkg/Tcg/TrEEConfig/TpmDetection.c @@ -124,6 +124,7 @@ DetectTpmDevice ( } // NO initialization needed again. - PcdSet8 (PcdTpmInitializationPolicy, 0); + Status = PcdSet8S (PcdTpmInitializationPolicy, 0); + ASSERT_EFI_ERROR (Status); return TPM_DEVICE_1_2; } diff --git a/SecurityPkg/Tcg/TrEEConfig/TrEEConfigPeim.c b/SecurityPkg/Tcg/TrEEConfig/TrEEConfigPeim.c index efe40bc..b4a3d52 100644 --- a/SecurityPkg/Tcg/TrEEConfig/TrEEConfigPeim.c +++ b/SecurityPkg/Tcg/TrEEConfig/TrEEConfigPeim.c @@ -132,7 +132,8 @@ TrEEConfigPeimEntryPoint ( for (Index = 0; Index < sizeof(mTpmInstanceId)/sizeof(mTpmInstanceId[0]); Index++) { if (TpmDevice == mTpmInstanceId[Index].TpmDevice) { Size = sizeof(mTpmInstanceId[Index].TpmInstanceGuid); - PcdSetPtr (PcdTpmInstanceGuid, &Size, &mTpmInstanceId[Index].TpmInstanceGuid); + Status = PcdSetPtrS (PcdTpmInstanceGuid, &Size, &mTpmInstanceId[Index].TpmInstanceGuid); + ASSERT_EFI_ERROR (Status); DEBUG ((EFI_D_INFO, "TpmDevice PCD: %g\n", &mTpmInstanceId[Index].TpmInstanceGuid)); break; } -- 1.9.5.msysgit.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel