ShellPkg/HandleParsingLib: Return NULL name for unknown GUID
GetStringNameFromGuid() returns NULL for unknown GUID, instead of returning "UnknownDevice". The behavior change matches ShellProtocol.GetGuidName(). Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
This commit is contained in:
@ -933,25 +933,22 @@ AdapterInformationDumpInformation (
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
GuidStr = GetStringNameFromGuid (&InfoTypesBuffer[GuidIndex], NULL);
|
GuidStr = GetStringNameFromGuid (&InfoTypesBuffer[GuidIndex], NULL);
|
||||||
|
if (GuidStr == NULL) {
|
||||||
|
TempRetVal = CatSPrint (RetVal, TempStr, L"UnknownInfoType");
|
||||||
|
SHELL_FREE_NON_NULL (RetVal);
|
||||||
|
RetVal = TempRetVal;
|
||||||
|
|
||||||
if (GuidStr != NULL) {
|
SHELL_FREE_NON_NULL (TempStr);
|
||||||
if (StrCmp(GuidStr, L"UnknownDevice") == 0) {
|
SHELL_FREE_NON_NULL(GuidStr);
|
||||||
TempRetVal = CatSPrint (RetVal, TempStr, L"UnknownInfoType");
|
//
|
||||||
SHELL_FREE_NON_NULL (RetVal);
|
// So that we never have to pass this UnknownInfoType to the parsing function "GetInformation" service of AIP
|
||||||
RetVal = TempRetVal;
|
//
|
||||||
|
continue;
|
||||||
SHELL_FREE_NON_NULL (TempStr);
|
} else {
|
||||||
SHELL_FREE_NON_NULL(GuidStr);
|
TempRetVal = CatSPrint (RetVal, TempStr, GuidStr);
|
||||||
//
|
SHELL_FREE_NON_NULL (RetVal);
|
||||||
// So that we never have to pass this UnknownInfoType to the parsing function "GetInformation" service of AIP
|
RetVal = TempRetVal;
|
||||||
//
|
SHELL_FREE_NON_NULL(GuidStr);
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
TempRetVal = CatSPrint (RetVal, TempStr, GuidStr);
|
|
||||||
SHELL_FREE_NON_NULL (RetVal);
|
|
||||||
RetVal = TempRetVal;
|
|
||||||
SHELL_FREE_NON_NULL(GuidStr);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1500,7 +1497,7 @@ STATIC CONST GUID_INFO_BLOCK mGuidStringListNT[] = {
|
|||||||
{STRING_TOKEN(STR_WINNT_THUNK), (EFI_GUID*)&WinNtThunkProtocolGuid, NULL},
|
{STRING_TOKEN(STR_WINNT_THUNK), (EFI_GUID*)&WinNtThunkProtocolGuid, NULL},
|
||||||
{STRING_TOKEN(STR_WINNT_DRIVER_IO), (EFI_GUID*)&WinNtIoProtocolGuid, NULL},
|
{STRING_TOKEN(STR_WINNT_DRIVER_IO), (EFI_GUID*)&WinNtIoProtocolGuid, NULL},
|
||||||
{STRING_TOKEN(STR_WINNT_SERIAL_PORT), (EFI_GUID*)&WinNtSerialPortGuid, NULL},
|
{STRING_TOKEN(STR_WINNT_SERIAL_PORT), (EFI_GUID*)&WinNtSerialPortGuid, NULL},
|
||||||
{STRING_TOKEN(STR_UNKNOWN_DEVICE), NULL, NULL},
|
{0, NULL, NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC CONST GUID_INFO_BLOCK mGuidStringList[] = {
|
STATIC CONST GUID_INFO_BLOCK mGuidStringList[] = {
|
||||||
@ -1816,7 +1813,7 @@ STATIC CONST GUID_INFO_BLOCK mGuidStringList[] = {
|
|||||||
//
|
//
|
||||||
// terminator
|
// terminator
|
||||||
//
|
//
|
||||||
{STRING_TOKEN(STR_UNKNOWN_DEVICE), NULL, NULL},
|
{0, NULL, NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1964,7 +1961,10 @@ GetStringNameFromGuid(
|
|||||||
HandleParsingHiiInit();
|
HandleParsingHiiInit();
|
||||||
|
|
||||||
Id = InternalShellGetNodeFromGuid(Guid);
|
Id = InternalShellGetNodeFromGuid(Guid);
|
||||||
return (HiiGetString(mHandleParsingHiiHandle, Id==NULL?STRING_TOKEN(STR_UNKNOWN_DEVICE):Id->StringId, Lang));
|
if (Id == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return HiiGetString (mHandleParsingHiiHandle, Id->StringId, Lang);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// /**
|
// /**
|
||||||
//
|
//
|
||||||
// Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved. <BR>
|
// Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved. <BR>
|
||||||
// (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>
|
// (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>
|
||||||
// (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
|
// (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
|
||||||
// This program and the accompanying materials
|
// This program and the accompanying materials
|
||||||
@ -159,8 +159,6 @@
|
|||||||
#string STR_WINNT_DRIVER_IO #language en-US "WinNTDriverIO"
|
#string STR_WINNT_DRIVER_IO #language en-US "WinNTDriverIO"
|
||||||
#string STR_WINNT_SERIAL_PORT #language en-US "WinNTSerialPort"
|
#string STR_WINNT_SERIAL_PORT #language en-US "WinNTSerialPort"
|
||||||
|
|
||||||
#string STR_UNKNOWN_DEVICE #language en-US "UnknownDevice"
|
|
||||||
|
|
||||||
// deprecated protocols
|
// deprecated protocols
|
||||||
#string STR_SHELL_INTERFACE #language en-US "ShellInterface"
|
#string STR_SHELL_INTERFACE #language en-US "ShellInterface"
|
||||||
#string STR_SHELL_ENV #language en-US "ShellEnvironment"
|
#string STR_SHELL_ENV #language en-US "ShellEnvironment"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
Main file for Dh shell Driver1 function.
|
Main file for Dh shell Driver1 function.
|
||||||
|
|
||||||
(C) Copyright 2014-2015 Hewlett-Packard Development Company, L.P.<BR>
|
(C) Copyright 2014-2015 Hewlett-Packard Development Company, L.P.<BR>
|
||||||
Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -153,6 +153,7 @@ GetProtocolInfoString(
|
|||||||
CHAR16 *RetVal;
|
CHAR16 *RetVal;
|
||||||
UINTN Size;
|
UINTN Size;
|
||||||
CHAR16 *Temp;
|
CHAR16 *Temp;
|
||||||
|
CHAR16 GuidStr[40];
|
||||||
|
|
||||||
ProtocolGuidArray = NULL;
|
ProtocolGuidArray = NULL;
|
||||||
RetVal = NULL;
|
RetVal = NULL;
|
||||||
@ -166,16 +167,19 @@ GetProtocolInfoString(
|
|||||||
if (!EFI_ERROR (Status)) {
|
if (!EFI_ERROR (Status)) {
|
||||||
for (ProtocolIndex = 0; ProtocolIndex < ArrayCount; ProtocolIndex++) {
|
for (ProtocolIndex = 0; ProtocolIndex < ArrayCount; ProtocolIndex++) {
|
||||||
Temp = GetStringNameFromGuid(ProtocolGuidArray[ProtocolIndex], Language);
|
Temp = GetStringNameFromGuid(ProtocolGuidArray[ProtocolIndex], Language);
|
||||||
if (Temp != NULL) {
|
ASSERT((RetVal == NULL && Size == 0) || (RetVal != NULL));
|
||||||
ASSERT((RetVal == NULL && Size == 0) || (RetVal != NULL));
|
if (Size != 0) {
|
||||||
if (Size != 0) {
|
StrnCatGrow(&RetVal, &Size, Separator, 0);
|
||||||
StrnCatGrow(&RetVal, &Size, Separator, 0);
|
}
|
||||||
}
|
StrnCatGrow(&RetVal, &Size, L"%H", 0);
|
||||||
StrnCatGrow(&RetVal, &Size, L"%H", 0);
|
if (Temp == NULL) {
|
||||||
|
UnicodeSPrint (GuidStr, sizeof (GuidStr), L"%g", ProtocolGuidArray[ProtocolIndex]);
|
||||||
|
StrnCatGrow (&RetVal, &Size, GuidStr, 0);
|
||||||
|
} else {
|
||||||
StrnCatGrow(&RetVal, &Size, Temp, 0);
|
StrnCatGrow(&RetVal, &Size, Temp, 0);
|
||||||
StrnCatGrow(&RetVal, &Size, L"%N", 0);
|
|
||||||
FreePool(Temp);
|
FreePool(Temp);
|
||||||
}
|
}
|
||||||
|
StrnCatGrow(&RetVal, &Size, L"%N", 0);
|
||||||
if (ExtraInfo) {
|
if (ExtraInfo) {
|
||||||
Temp = GetProtocolInformationDump(TheHandle, ProtocolGuidArray[ProtocolIndex], Verbose);
|
Temp = GetProtocolInformationDump(TheHandle, ProtocolGuidArray[ProtocolIndex], Verbose);
|
||||||
if (Temp != NULL) {
|
if (Temp != NULL) {
|
||||||
|
Reference in New Issue
Block a user