From ccedcdc67264ac6f0844575d4815b45e3ef096c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marvin=20H=C3=A4user?= <8659494+mhaeuser@users.noreply.github.com> Date: Sat, 3 Apr 2021 18:27:56 +0200 Subject: [PATCH] OcMiscLib: Align LoadedImage with Shell behaviour for no arguments --- Changelog.md | 1 + Library/OcMiscLib/ProtocolSupport.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Changelog.md b/Changelog.md index 9a57c150..fa2b17b3 100644 --- a/Changelog.md +++ b/Changelog.md @@ -55,6 +55,7 @@ OpenCore Changelog - Improved OpenCanopy pointer acceleration - Added more precise control on `AppleEvent` protocol properties and features - Added dynamic keyboard protocol installation on CrScreenshotDxe +- Support starting UEFI tools with argument support (e.g. `ControlMsrE2`) without arguments from picker #### v0.6.7 - Fixed ocvalidate return code to be non-zero when issues are found diff --git a/Library/OcMiscLib/ProtocolSupport.c b/Library/OcMiscLib/ProtocolSupport.c index 8474c255..2b0bdb3c 100644 --- a/Library/OcMiscLib/ProtocolSupport.c +++ b/Library/OcMiscLib/ProtocolSupport.c @@ -27,6 +27,8 @@ GetArguments ( OUT CHAR16 ***Argv ) { + STATIC CHAR16 *StArgv[2] = { L"Self", NULL }; + EFI_STATUS Status; EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters; EFI_LOADED_IMAGE_PROTOCOL *LoadedImage; @@ -47,11 +49,17 @@ GetArguments ( &gEfiLoadedImageProtocolGuid, (VOID **) &LoadedImage ); + + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_WARN, "OCM: LoadedImage cannot be located - %r\n", Status)); + } + if (EFI_ERROR (Status) || LoadedImage->LoadOptions == NULL) { - return EFI_NOT_FOUND; + *Argc = 1; + *Argv = StArgv; + return EFI_SUCCESS; } - STATIC CHAR16 *StArgv[2] = { L"Self", NULL }; StArgv[1] = LoadedImage->LoadOptions; *Argc = ARRAY_SIZE (StArgv); *Argv = StArgv; -- GitLab