On 4/9/19 7:33 AM, Gao, Zhichao wrote:
> The patch code looks good to me.
> But while I apply this patch, it will shows "error: corrupt patch at line 24" 
> and " error: could not build fake ancestor". Maybe you direct change the 
> patch file and remove some blank lines.
> For Uefi BdsDxe driver, the variable "PlatfomLang" would be initialize all 
> the time. But maybe other manufacturers may have their own Bds solution and 
> do not set this variable. This patch makes the Shell app more compatible.
>
> Without the patch warning.
> Reviewed-by: Zhichao Gao <zhichao....@intel.com>

Thanks for reviewing.

The firmware that gave me the problem was U-Boot. In v2019.07 of U-Boot
PlatformLang will be set.

I am using Linux. The checked out EDK code has Windows line endings. Git
seems not to work correctly with it.

I will try to recreate the patch on a Windows system and resend it.

Best regards

Heinrich

>
>> -----Original Message-----
>> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
>> Heinrich Schuchardt
>> Sent: Friday, April 5, 2019 9:29 AM
>> To: Carsey, Jaben <jaben.car...@intel.com>; Ni, Ray <ray...@intel.com>;
>> Leif Lindholm <leif.lindh...@linaro.org>; Ard Biesheuvel
>> <ard.biesheu...@linaro.org>
>> Cc: Ni, Ray <ray...@intel.com>; devel@edk2.groups.io; Heinrich Schuchardt
>> <xypron.g...@gmx.de>
>> Subject: [edk2-devel] [PATCH 1/1] ShellPkg/CommandLib: avoid NULL
>> derefence and memory leak
>>
>> Since TianoCore EDK2 commit d65f2cea36d1 ("ShellPkg/CommandLib: Locate
>> proper UnicodeCollation instance") in edk2 the UEFI Shell crashes if EFI
>> variable PlatformLang is not defined due to dereferencing gUnicodeCollation
>> gUnicodeCollation (= NULL) in ShellCommandRegisterCommandName().
>>
>> Furthermore CommandInit() is leaking PlatformLang if gUnicodeCollation !=
>> NULL.
>>
>> Close the memory leak and use the first UnicodeCollation instance if
>> PlatfomLang is not defined.
>>
>> Fixes: d65f2cea36d1 ("ShellPkg/CommandLib: Locate proper
>> UnicodeCollation
>> instance")
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
>> ---
>>  .../UefiShellCommandLib/UefiShellCommandLib.c | 20 +++++++++++++-----
>> -
>>  1 file changed, 14 insertions(+), 6 deletions(-)
>>
>> diff --git a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c
>> b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c
>> index ddc4bb1567..e60279e5ac 100644
>> --- a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c
>> +++ b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c
>> @@ -80,12 +80,10 @@ CommandInit(
>>    EFI_STATUS                      Status;
>>    CHAR8                           *PlatformLang;
>>
>> -  GetEfiGlobalVariable2 (EFI_PLATFORM_LANG_VARIABLE_NAME,
>> (VOID**)&PlatformLang, NULL);
>> -  if (PlatformLang == NULL) {
>> -    return EFI_UNSUPPORTED;
>> -  }
>> -
>>    if (gUnicodeCollation == NULL) {
>> +
>> +    GetEfiGlobalVariable2 (EFI_PLATFORM_LANG_VARIABLE_NAME,
>> + (VOID**)&PlatformLang, NULL);
>> +
>>      Status = gBS->LocateHandleBuffer (
>>                      ByProtocol,
>>                      &gEfiUnicodeCollation2ProtocolGuid,
>> @@ -113,6 +111,14 @@ CommandInit(
>>          continue;
>>        }
>>
>> +      //
>> +      // Without clue provided use the first Unicode Collation2 protocol.
>> +      //
>> +      if (PlatformLang == NULL) {
>> +        gUnicodeCollation = Uc;
>> +        break;
>> +      }
>> +
>>        //
>>        // Find the best matching matching language from the supported
>> languages
>>        // of Unicode Collation2 protocol.
>> @@ -132,7 +138,9 @@ CommandInit(
>>      if (Handles != NULL) {
>>        FreePool (Handles);
>>      }
>> -    FreePool (PlatformLang);
>> +    if (PlatformLang != NULL) {
>> +      FreePool (PlatformLang);
>> +    }
>>    }
>>
>>    return (gUnicodeCollation == NULL) ? EFI_UNSUPPORTED : EFI_SUCCESS;
>> --
>> 2.20.1
>>
>>
>> -=-=-=-=-=-=
>> Groups.io Links: You receive all messages sent to this group.
>>
>> View/Reply Online (#38597): https://edk2.groups.io/g/devel/message/38597
>> Mute This Topic: https://groups.io/mt/30920004/1768756
>> Group Owner: devel+ow...@edk2.groups.io
>> Unsubscribe: https://edk2.groups.io/g/devel/unsub
>> [zhichao....@intel.com] -=-=-=-=-=-=
>
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#38703): https://edk2.groups.io/g/devel/message/38703
Mute This Topic: https://groups.io/mt/30920004/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to