From 5152c2a6ffaa94154a51ea74a25bb07d55ae5a27 Mon Sep 17 00:00:00 2001 From: Ken Lautner Date: Tue, 11 Jul 2023 14:27:34 -0700 Subject: [PATCH] Made codeql fixes for miscellaneous issues --- .../Library/BaseCryptLib/UnitTestMain.c | 12 ++- MdeModulePkg/Core/Pei/Ppi/Ppi.c | 13 +--- MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c | 74 +++++++++++++++++-- .../Universal/SetupBrowserDxe/Expression.c | 37 +++++++++- NetworkPkg/Ip4Dxe/Ip4Input.c | 8 +- NetworkPkg/Ip6Dxe/Ip6ConfigImpl.c | 27 ++++--- NetworkPkg/Ip6Dxe/Ip6Input.c | 8 +- NetworkPkg/Ip6Dxe/Ip6Nd.c | 8 +- NetworkPkg/Ip6Dxe/Ip6Output.c | 9 ++- NetworkPkg/Library/DxeNetLib/NetBuffer.c | 7 ++ NetworkPkg/TcpDxe/TcpOption.c | 32 +++++++- NetworkPkg/TcpDxe/TcpOutput.c | 8 +- UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c | 8 +- UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 8 +- .../UnitTestPersistenceLibSimpleFileSystem.c | 8 ++ 15 files changed, 224 insertions(+), 43 deletions(-) diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/UnitTestMain.c b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/UnitTestMain.c index d0c1c7a4f7..a0ddf07b59 100644 --- a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/UnitTestMain.c +++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/UnitTestMain.c @@ -26,13 +26,23 @@ UefiTestMain ( UNIT_TEST_FRAMEWORK_HANDLE Framework; DEBUG ((DEBUG_INFO, "%a v%a\n", UNIT_TEST_NAME, UNIT_TEST_VERSION)); - CreateUnitTest (UNIT_TEST_NAME, UNIT_TEST_VERSION, &Framework); + // MU_CHANGE [BEGIN] - CodeQL change + Status = CreateUnitTest (UNIT_TEST_NAME, UNIT_TEST_VERSION, &Framework); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "Failed in CreateUnitTestsfor BaseCryptLib Tests! Status = %r\n", Status)); + goto Done; + } + + // MU_CHANGE [END] - CodeQL change // // Execute the tests. // Status = RunAllTestSuites (Framework); + // MU_CHANGE [BEGIN] - CodeQL change +Done: + // MU_CHANGE [END] - CodeQL change if (Framework) { FreeUnitTestFramework (Framework); } diff --git a/MdeModulePkg/Core/Pei/Ppi/Ppi.c b/MdeModulePkg/Core/Pei/Ppi/Ppi.c index df2cb9221d..6d2697e5d1 100644 --- a/MdeModulePkg/Core/Pei/Ppi/Ppi.c +++ b/MdeModulePkg/Core/Pei/Ppi/Ppi.c @@ -324,16 +324,9 @@ ConvertPpiPointersFv ( Guid = PrivateData->PpiData.PpiList.PpiPtrs[Index].Ppi->Guid; for (GuidIndex = 0; GuidIndex < ARRAY_SIZE (GuidCheckList); ++GuidIndex) { - // - // Don't use CompareGuid function here for performance reasons. - // Instead we compare the GUID as INT32 at a time and branch - // on the first failed comparison. - // - if ((((INT32 *)Guid)[0] == ((INT32 *)GuidCheckList[GuidIndex])[0]) && - (((INT32 *)Guid)[1] == ((INT32 *)GuidCheckList[GuidIndex])[1]) && - (((INT32 *)Guid)[2] == ((INT32 *)GuidCheckList[GuidIndex])[2]) && - (((INT32 *)Guid)[3] == ((INT32 *)GuidCheckList[GuidIndex])[3])) - { + // MU_CHANGE [BEGIN] - CodeQL change + if (CompareMem (Guid, GuidCheckList[GuidIndex], 16) == 0) { + // MU_CHANGE [END] - CodeQL change FvInfoPpi = PrivateData->PpiData.PpiList.PpiPtrs[Index].Ppi->Ppi; DEBUG ((DEBUG_VERBOSE, " FvInfo: %p -> ", FvInfoPpi->FvInfo)); if ((UINTN)FvInfoPpi->FvInfo == OrgFvHandle) { diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c b/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c index 2f37b83838..4fa5120a0f 100644 --- a/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c +++ b/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c @@ -1457,6 +1457,11 @@ GetFullSmramRanges ( EFI_SMM_RESERVED_SMRAM_REGION *SmramReservedRanges; UINTN MaxCount; BOOLEAN Rescan; + // MU_CHANGE [BEGIN] - CodeQL change + BOOLEAN Failed; + + Failed = FALSE; + // MU_CHANGE [END] - CodeQL change // // Get SMM Configuration Protocol if it is present. @@ -1501,7 +1506,14 @@ GetFullSmramRanges ( *FullSmramRangeCount = SmramRangeCount + AdditionSmramRangeCount; Size = (*FullSmramRangeCount) * sizeof (EFI_SMRAM_DESCRIPTOR); FullSmramRanges = (EFI_SMRAM_DESCRIPTOR *)AllocateZeroPool (Size); - ASSERT (FullSmramRanges != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (FullSmramRanges == NULL) { + ASSERT (FullSmramRanges != NULL); + Failed = TRUE; + goto Done; + } + + // MU_CHANGE [END] - CodeQL change Status = mSmmAccess->GetCapabilities (mSmmAccess, &Size, FullSmramRanges); ASSERT_EFI_ERROR (Status); @@ -1548,18 +1560,41 @@ GetFullSmramRanges ( Size = MaxCount * sizeof (EFI_SMM_RESERVED_SMRAM_REGION); SmramReservedRanges = (EFI_SMM_RESERVED_SMRAM_REGION *)AllocatePool (Size); - ASSERT (SmramReservedRanges != NULL); + + // MU_CHANGE [BEGIN] - CodeQL change + if (SmramReservedRanges == NULL) { + ASSERT (SmramReservedRanges != NULL); + Failed = TRUE; + goto Done; + } + + // MU_CHANGE [END] - CodeQL change + for (Index = 0; Index < SmramReservedCount; Index++) { CopyMem (&SmramReservedRanges[Index], &SmmConfiguration->SmramReservedRegions[Index], sizeof (EFI_SMM_RESERVED_SMRAM_REGION)); } Size = MaxCount * sizeof (EFI_SMRAM_DESCRIPTOR); TempSmramRanges = (EFI_SMRAM_DESCRIPTOR *)AllocatePool (Size); - ASSERT (TempSmramRanges != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (TempSmramRanges == NULL) { + ASSERT (TempSmramRanges != NULL); + Failed = TRUE; + goto Done; + } + + // MU_CHANGE [END] - CodeQL change TempSmramRangeCount = 0; SmramRanges = (EFI_SMRAM_DESCRIPTOR *)AllocatePool (Size); - ASSERT (SmramRanges != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (SmramRanges == NULL) { + ASSERT (SmramRanges != NULL); + Failed = TRUE; + goto Done; + } + + // MU_CHANGE [END] - CodeQL change Status = mSmmAccess->GetCapabilities (mSmmAccess, &Size, SmramRanges); ASSERT_EFI_ERROR (Status); @@ -1616,7 +1651,14 @@ GetFullSmramRanges ( // Sort the entries // FullSmramRanges = AllocateZeroPool ((TempSmramRangeCount + AdditionSmramRangeCount) * sizeof (EFI_SMRAM_DESCRIPTOR)); - ASSERT (FullSmramRanges != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (FullSmramRanges == NULL) { + ASSERT (FullSmramRanges != NULL); + Failed = TRUE; + goto Done; + } + + // MU_CHANGE [END] - CodeQL change *FullSmramRangeCount = 0; do { for (Index = 0; Index < TempSmramRangeCount; Index++) { @@ -1640,9 +1682,25 @@ GetFullSmramRanges ( ASSERT (*FullSmramRangeCount == TempSmramRangeCount); *FullSmramRangeCount += AdditionSmramRangeCount; - FreePool (SmramRanges); - FreePool (SmramReservedRanges); - FreePool (TempSmramRanges); + // MU_CHANGE [BEGIN] - CodeQL change +Done: + if (SmramRanges != NULL) { + FreePool (SmramRanges); + } + + if (SmramReservedRanges != NULL) { + FreePool (SmramReservedRanges); + } + + if (TempSmramRanges != NULL) { + FreePool (TempSmramRanges); + } + + if (Failed) { + return NULL; + } + + // MU_CHANGE [END] - CodeQL change return FullSmramRanges; } diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c b/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c index a8a7c7dc1b..95516908d3 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c @@ -1173,6 +1173,14 @@ IfrToString ( } else { SrcBuf = GetBufferForValue (&Value); SrcLen = GetLengthForValue (&Value); + // MU_CHANGE [BEGIN] - CodeQL change + if ((SrcBuf == NULL) || (SrcLen == 0)) { + ASSERT (SrcBuf != NULL); + ASSERT (SrcLen != 0); + return EFI_NOT_FOUND; + } + + // MU_CHANGE [END] - CodeQL change } TmpBuf = AllocateZeroPool (SrcLen + 3); @@ -1183,6 +1191,7 @@ IfrToString ( } // MU_CHANGE [END] - CodeQL change + if (Format == EFI_IFR_STRING_ASCII) { CopyMem (TmpBuf, SrcBuf, SrcLen); PrintFormat = L"%a"; @@ -1292,7 +1301,8 @@ IfrToUint ( Evaluate opcode EFI_IFR_CATENATE. @param FormSet Formset which contains this opcode. - @param Result Evaluation result for this opcode. + @param Result Evaluation result for this opcode. Result + will be NULL on a failure. @retval EFI_SUCCESS Opcode evaluation success. @retval Other Opcode evaluation failed. @@ -1377,10 +1387,24 @@ IfrCatenate ( ASSERT (Result->Buffer != NULL); TmpBuf = GetBufferForValue (&Value[0]); - ASSERT (TmpBuf != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (TmpBuf == NULL) { + ASSERT (TmpBuf != NULL); + Status = EFI_OUT_OF_RESOURCES; + goto Done; + } + + // MU_CHANGE [END] - CodeQL change CopyMem (Result->Buffer, TmpBuf, Length0); TmpBuf = GetBufferForValue (&Value[1]); - ASSERT (TmpBuf != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (TmpBuf == NULL) { + ASSERT (TmpBuf != NULL); + Status = EFI_OUT_OF_RESOURCES; + goto Done; + } + + // MU_CHANGE [END] - CodeQL change CopyMem (&Result->Buffer[Length0], TmpBuf, Length1); } @@ -1405,6 +1429,13 @@ IfrCatenate ( FreePool (StringPtr); } + // MU_CHANGE [BEGIN] - CodeQL change + if (EFI_ERROR (Status) && (Result != NULL)) { + FreePool (Result); + } + + // MU_CHANGE [END] - CodeQL change + return Status; } diff --git a/NetworkPkg/Ip4Dxe/Ip4Input.c b/NetworkPkg/Ip4Dxe/Ip4Input.c index 73b8b52098..9e246d63b3 100644 --- a/NetworkPkg/Ip4Dxe/Ip4Input.c +++ b/NetworkPkg/Ip4Dxe/Ip4Input.c @@ -1318,7 +1318,13 @@ Ip4InstanceDeliverPacket ( // may be not continuous before the data. // Head = NetbufAllocSpace (Dup, IP4_MAX_HEADLEN, NET_BUF_HEAD); - ASSERT (Head != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (Head == NULL) { + ASSERT (Head != NULL); + return EFI_OUT_OF_RESOURCES; + } + + // MU_CHANGE [END] - CodeQL change Dup->Ip.Ip4 = (IP4_HEAD *)Head; diff --git a/NetworkPkg/Ip6Dxe/Ip6ConfigImpl.c b/NetworkPkg/Ip6Dxe/Ip6ConfigImpl.c index 70e232ce6c..570aebf187 100644 --- a/NetworkPkg/Ip6Dxe/Ip6ConfigImpl.c +++ b/NetworkPkg/Ip6Dxe/Ip6ConfigImpl.c @@ -864,19 +864,26 @@ Ip6ManualAddrDadCallback ( // data with those passed. // PassedAddr = (EFI_IP6_CONFIG_MANUAL_ADDRESS *)AllocatePool (Item->DataSize); - ASSERT (PassedAddr != NULL); - - Item->Data.Ptr = PassedAddr; - Item->Status = EFI_SUCCESS; - - while (!NetMapIsEmpty (&Instance->DadPassedMap)) { - ManualAddr = (EFI_IP6_CONFIG_MANUAL_ADDRESS *)NetMapRemoveHead (&Instance->DadPassedMap, NULL); - CopyMem (PassedAddr, ManualAddr, sizeof (EFI_IP6_CONFIG_MANUAL_ADDRESS)); + // MU_CHANGE [BEGIN] - CodeQL change + if (PassedAddr == NULL) { + ASSERT (PassedAddr != NULL); + Item->Data.Ptr = NULL; + Item->Status = EFI_OUT_OF_RESOURCES; + } else { + Item->Data.Ptr = PassedAddr; + Item->Status = EFI_SUCCESS; + + while (!NetMapIsEmpty (&Instance->DadPassedMap)) { + ManualAddr = (EFI_IP6_CONFIG_MANUAL_ADDRESS *)NetMapRemoveHead (&Instance->DadPassedMap, NULL); + CopyMem (PassedAddr, ManualAddr, sizeof (EFI_IP6_CONFIG_MANUAL_ADDRESS)); + + PassedAddr++; + } - PassedAddr++; + ASSERT ((UINTN)PassedAddr - (UINTN)Item->Data.Ptr == Item->DataSize); } - ASSERT ((UINTN)PassedAddr - (UINTN)Item->Data.Ptr == Item->DataSize); + // MU_CHANGE [END] - CodeQL change } } else { // diff --git a/NetworkPkg/Ip6Dxe/Ip6Input.c b/NetworkPkg/Ip6Dxe/Ip6Input.c index 4bed2c2cf6..580466f791 100644 --- a/NetworkPkg/Ip6Dxe/Ip6Input.c +++ b/NetworkPkg/Ip6Dxe/Ip6Input.c @@ -1522,7 +1522,13 @@ Ip6InstanceDeliverPacket ( // may be not continuous before the data. // Head = NetbufAllocSpace (Dup, sizeof (EFI_IP6_HEADER), NET_BUF_HEAD); - ASSERT (Head != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (Head == NULL) { + ASSERT (Head != NULL); + return EFI_OUT_OF_RESOURCES; + } + + // MU_CHANGE [END] - CodeQL change Dup->Ip.Ip6 = (EFI_IP6_HEADER *)Head; CopyMem (Head, Packet->Ip.Ip6, sizeof (EFI_IP6_HEADER)); diff --git a/NetworkPkg/Ip6Dxe/Ip6Nd.c b/NetworkPkg/Ip6Dxe/Ip6Nd.c index 4de9de5846..335b0f8370 100644 --- a/NetworkPkg/Ip6Dxe/Ip6Nd.c +++ b/NetworkPkg/Ip6Dxe/Ip6Nd.c @@ -1445,7 +1445,13 @@ Ip6SendNeighborSolicit ( IcmpHead->Head.Code = 0; Target = (EFI_IPv6_ADDRESS *)NetbufAllocSpace (Packet, sizeof (EFI_IPv6_ADDRESS), FALSE); - ASSERT (Target != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (Target == NULL) { + ASSERT (Target != NULL); + return EFI_OUT_OF_RESOURCES; + } + + // MU_CHANGE [END] - CodeQL change IP6_COPY_ADDRESS (Target, TargetIp6Address); LinkLayerOption = NULL; diff --git a/NetworkPkg/Ip6Dxe/Ip6Output.c b/NetworkPkg/Ip6Dxe/Ip6Output.c index e77903db51..9be12dab98 100644 --- a/NetworkPkg/Ip6Dxe/Ip6Output.c +++ b/NetworkPkg/Ip6Dxe/Ip6Output.c @@ -866,7 +866,14 @@ Ip6Output ( // Allocate the space to contain the fragmentable hdrs and copy the data. // Buf = NetbufAllocSpace (TmpPacket, FragmentHdrsLen, TRUE); - ASSERT (Buf != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (Buf == NULL) { + ASSERT (Buf != NULL); + Status = EFI_OUT_OF_RESOURCES; + goto Error; + } + + // MU_CHANGE [END] - CodeQL change CopyMem (Buf, ExtHdrs + UnFragmentHdrsLen, FragmentHdrsLen); // diff --git a/NetworkPkg/Library/DxeNetLib/NetBuffer.c b/NetworkPkg/Library/DxeNetLib/NetBuffer.c index 4721fbd270..9add8b018b 100644 --- a/NetworkPkg/Library/DxeNetLib/NetBuffer.c +++ b/NetworkPkg/Library/DxeNetLib/NetBuffer.c @@ -303,6 +303,13 @@ NetbufDuplicate ( NetbufReserve (Duplicate, HeadSpace); Dst = NetbufAllocSpace (Duplicate, Nbuf->TotalSize, NET_BUF_TAIL); + // MU_CHANGE [BEGIN] - CodeQL change + if (Dst == NULL) { + ASSERT (Dst != NULL); + return NULL; + } + + // MU_CHANGE [END] - CodeQL change NetbufCopy (Nbuf, 0, Nbuf->TotalSize, Dst); return Duplicate; diff --git a/NetworkPkg/TcpDxe/TcpOption.c b/NetworkPkg/TcpDxe/TcpOption.c index f0bb5a6b51..9708cb70c4 100644 --- a/NetworkPkg/TcpDxe/TcpOption.c +++ b/NetworkPkg/TcpDxe/TcpOption.c @@ -130,7 +130,13 @@ TcpSynBuildOption ( NET_BUF_HEAD ); - ASSERT (Data != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (Data == NULL) { + ASSERT (Data != NULL); + return 0; // Returning Len of 0 if we fail allocating space + } + + // MU_CHANGE [END] - CodeQL change Len += TCP_OPTION_TS_ALIGNED_LEN; TcpPutUint32 (Data, TCP_OPTION_TS_FAST); @@ -154,7 +160,13 @@ TcpSynBuildOption ( NET_BUF_HEAD ); - ASSERT (Data != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (Data == NULL) { + ASSERT (Data != NULL); + return 0; // Returning Len of -1 if we fail allocating space + } + + // MU_CHANGE [END] - CodeQL change Len += TCP_OPTION_WS_ALIGNED_LEN; TcpPutUint32 (Data, TCP_OPTION_WS_FAST | TcpComputeScale (Tcb)); @@ -164,7 +176,13 @@ TcpSynBuildOption ( // Build the MSS option. // Data = NetbufAllocSpace (Nbuf, TCP_OPTION_MSS_LEN, 1); - ASSERT (Data != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (Data == NULL) { + ASSERT (Data != NULL); + return 0; // Returning Len of 0 if we fail allocating space + } + + // MU_CHANGE [END] - CodeQL change Len += TCP_OPTION_MSS_LEN; TcpPutUint32 (Data, TCP_OPTION_MSS_FAST | Tcb->RcvMss); @@ -206,7 +224,13 @@ TcpBuildOption ( NET_BUF_HEAD ); - ASSERT (Data != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (Data == NULL) { + ASSERT (Data != NULL); + return 0; + } + + // MU_CHANGE [END] - CodeQL change Len += TCP_OPTION_TS_ALIGNED_LEN; TcpPutUint32 (Data, TCP_OPTION_TS_FAST); diff --git a/NetworkPkg/TcpDxe/TcpOutput.c b/NetworkPkg/TcpDxe/TcpOutput.c index b918fa0938..cd5d96e686 100644 --- a/NetworkPkg/TcpDxe/TcpOutput.c +++ b/NetworkPkg/TcpDxe/TcpOutput.c @@ -502,7 +502,13 @@ TcpGetSegmentSndQue ( // if (CopyLen != 0) { Data = NetbufAllocSpace (Nbuf, CopyLen, NET_BUF_TAIL); - ASSERT (Data != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (Data == NULL) { + ASSERT (Data != NULL); + goto OnError; + } + + // MU_CHANGE [END] - CodeQL change if ((INT32)NetbufCopy (Node, Offset, CopyLen, Data) != CopyLen) { goto OnError; diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c b/UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c index fb4a44eab6..b5f6227e51 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c @@ -1162,7 +1162,13 @@ GetAcpiCpuData ( Idtr = (IA32_DESCRIPTOR *)(UINTN)mAcpiCpuData.IdtrProfile; GdtForAp = AllocatePool ((Gdtr->Limit + 1) + (Idtr->Limit + 1) + mAcpiCpuData.ApMachineCheckHandlerSize); - ASSERT (GdtForAp != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (GdtForAp == NULL) { + ASSERT (GdtForAp != NULL); + return; + } + + // MU_CHANGE [END] - CodeQL change IdtForAp = (VOID *)((UINTN)GdtForAp + (Gdtr->Limit + 1)); MachineCheckHandlerForAp = (VOID *)((UINTN)IdtForAp + (Idtr->Limit + 1)); diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c index 5a9b675dbc..df6922670a 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c @@ -1986,7 +1986,13 @@ InitializeSmmCpuSemaphores ( DEBUG ((DEBUG_INFO, "Total Semaphores Size = 0x%x\n", TotalSize)); Pages = EFI_SIZE_TO_PAGES (TotalSize); SemaphoreBlock = AllocatePages (Pages); - ASSERT (SemaphoreBlock != NULL); + // MU_CHANGE [BEGIN] - CodeQL change + if (SemaphoreBlock == NULL) { + ASSERT (SemaphoreBlock != NULL); + return; + } + + // MU_CHANGE [END] - CodeQL change ZeroMem (SemaphoreBlock, TotalSize); SemaphoreAddr = (UINTN)SemaphoreBlock; diff --git a/UnitTestFrameworkPkg/Library/UnitTestPersistenceLibSimpleFileSystem/UnitTestPersistenceLibSimpleFileSystem.c b/UnitTestFrameworkPkg/Library/UnitTestPersistenceLibSimpleFileSystem/UnitTestPersistenceLibSimpleFileSystem.c index 63cc9eb819..01c34e9cb1 100644 --- a/UnitTestFrameworkPkg/Library/UnitTestPersistenceLibSimpleFileSystem/UnitTestPersistenceLibSimpleFileSystem.c +++ b/UnitTestFrameworkPkg/Library/UnitTestPersistenceLibSimpleFileSystem/UnitTestPersistenceLibSimpleFileSystem.c @@ -393,6 +393,14 @@ LoadUnitTestCache ( // MU_CHANGE: Use file name and path instead of device path FileName = GetCacheFileName (FrameworkHandle); + // MU_CHANGE [BEGIN] - CodeQL change + if (FileName == NULL) { + ASSERT (FileName != NULL); + return EFI_NOT_FOUND; + } + + // MU_CHANGE [END] - CodeQL change + // // Now that we know the path to the file... let's open it for writing. //