VirtualBox

Ignore:
Timestamp:
Mar 31, 2025 11:31:09 AM (2 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168237
Message:

Devices/EFI/FirmwareNew: Merge edk2-stable202502 from the vendor branch and make it build for the important platforms, bugref:4643

Location:
trunk/src/VBox/Devices/EFI/FirmwareNew
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/EFI/FirmwareNew

  • trunk/src/VBox/Devices/EFI/FirmwareNew/ShellPkg/Library/UefiShellDriver1CommandsLib/OpenInfo.c

    r99404 r108794  
    2626  @retval EFI_SUCCESS           The operation was successful.
    2727  @retval EFI_INVALID_PARAMETER TheHandle was NULL.
     28  @retval EFI_OUT_OF_RESOURCES  A memory allocation failed.
    2829**/
    2930EFI_STATUS
     
    103104          }
    104105
    105           HandleIndex     = ConvertHandleToHandleIndex (OpenInfo[OpenInfoIndex].AgentHandle);
     106          HandleIndex = ConvertHandleToHandleIndex (OpenInfo[OpenInfoIndex].AgentHandle);
     107          if (HandleIndex == 0) {
     108            FreePool (OpenInfo);
     109            FreePool (ProtocolGuidArray);
     110            return EFI_OUT_OF_RESOURCES;
     111          }
     112
    106113          Name            = GetStringNameFromHandle (OpenInfo[OpenInfoIndex].AgentHandle, NULL);
    107114          ControllerIndex = ConvertHandleToHandleIndex (OpenInfo[OpenInfoIndex].ControllerHandle);
    108           if (ControllerIndex != 0) {
     115          if ((ControllerIndex != 0) && (Name != NULL)) {
    109116            ShellPrintHiiEx (
    110117              -1,
     
    129136              OpenInfo[OpenInfoIndex].OpenCount,
    130137              OpenTypeString,
    131               Name
     138              Name ? Name : L""
    132139              );
    133140          }
     
    200207    } else {
    201208      Param1 = ShellCommandLineGetRawValue (Package, 1);
    202       Status = ShellConvertStringToUint64 (Param1, &Intermediate, TRUE, FALSE);
     209      if (Param1 != NULL) {
     210        Status = ShellConvertStringToUint64 (Param1, &Intermediate, TRUE, FALSE);
     211      }
     212
    203213      if (EFI_ERROR (Status) || (Param1 == NULL) || (ConvertHandleIndexToHandle ((UINTN)Intermediate) == NULL)) {
    204214        ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"openinfo", Param1);
     
    206216      } else {
    207217        TheHandle = ConvertHandleIndexToHandle ((UINTN)Intermediate);
    208         ASSERT (TheHandle != NULL);
     218        if (TheHandle == NULL) {
     219          ASSERT (TheHandle != NULL);
     220          ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"openinfo", Param1);
     221          return SHELL_INVALID_PARAMETER;
     222        }
     223
    209224        ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_OPENINFO_HEADER_LINE), gShellDriver1HiiHandle, (UINTN)Intermediate, TheHandle);
    210225
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette