From a658ed30e51f2b2024d7bf8d2aa8be2dfa0b02a2 Mon Sep 17 00:00:00 2001 From: Gua Guo Date: Fri, 6 May 2022 05:29:51 +0800 Subject: [PATCH] MdeModulePkg/PCD: Pcd initialize DXE have assert REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3917 When PlatformPkg.dsc has multiple SKU IDs but didn't exist delta PCD, System will hang on BuildPcdDxeDataBase. Ideally, if didn't exist delta PCD by different SKU ID, UpdatePcdDatabase () shouldn't return EFI_NOT_FOUND. Signed-off-by: Gua Guo Reviewed-by: Liming Gao --- MdeModulePkg/Universal/PCD/Dxe/Service.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MdeModulePkg/Universal/PCD/Dxe/Service.c b/MdeModulePkg/Universal/PCD/Dxe/Service.c index 3965846b93..5ade8d988b 100644 --- a/MdeModulePkg/Universal/PCD/Dxe/Service.c +++ b/MdeModulePkg/Universal/PCD/Dxe/Service.c @@ -817,6 +817,11 @@ UpdatePcdDatabase ( // Index = (mPcdDatabase.DxeDb->Length + 7) & (~7); SkuDelta = NULL; + + if (Index == mDxePcdDbSize) { + return EFI_SUCCESS; + } + while (Index < mDxePcdDbSize) { SkuDelta = (PCD_DATABASE_SKU_DELTA *)((UINT8 *)mDxePcdDbBinary + Index); if ((SkuDelta->SkuId == SkuId) && (SkuDelta->SkuIdCompared == 0)) { -- 2.39.2