The latest EDK2 source snapshot is also crashing in the emulator and in the EFI
shell on a Win8 Insyde machine.
Removing the * from UefiShellLib.c again solves the problem.
The comments in UefiShellLib.c is interesting. One must wander what this oddity
is.
" Due to oddity in the EFI shell we want to dereference the ParentHandle here"
Perhaps there was some Address or Pointer confusion early on and it carried on
unnoticed, nobody until now actually used ShellExecute within EFI Shell 1.0?
Anyway if you or someone else have a spare moment to launch the emulator in
Windows 7/8 or boot into EFI Shell 1.0 on a UEFI PC/Notebook and test it for
yourself at runtime, perhaps we can confirm that it is a bug in the EDK2 source.
From: [email protected]
Date: Mon, 22 Sep 2014 17:58:53 -0700
To: [email protected]
Subject: Re: [edk2] ShellExecute crashing in NT emulator - [Bug Found]
Sent from my iPhone
On Sep 22, 2014, at 5:44 PM, J. E. <[email protected]> wrote:
I agree the code looks fine in the source, the code matches my UDK 2014, but it
doesn't work in the EFI Shell 1.0 during runtime.
I am currently installing the latest snapshot of EDKII/UDK, I will test it with
fresh code just in case something funny happened in my UDK folder or a recent
patch fixed the problem, but I think it will do the same thing since I have not
modified the UDK library in any way.
I'll post back once I figure out how to build the missing Win32 base tools
without build.exe :p (I'll figure it out..)
Base tools build from running nmake in the BaseTools dir.
From: [email protected]
Date: Mon, 22 Sep 2014 16:05:23 -0700
To: [email protected]
Subject: Re: [edk2] ShellExecute crashing in NT emulator - [Bug Found]
On Sep 22, 2014, at 3:09 PM, J. E. <[email protected]> wrote:HiI am not
accessing it from my app, i am fixing a bug in udk2014.
It is hard to tell from your mail as you keep showing code fragments, and not a
diff or code fragment plus what file it came from.
My app is only calling ShellExecute. Try it yourself in helloworld, im sure if
you call shellexecute in an efi shell 1.0 it will crash
If we look at the EfiShellEnvironment2 protocol definition we see:
https://svn.code.sf.net/p/edk2/code/trunk/edk2/ShellPkg/Include/Protocol/EfiShellEnvironment2.htypedef
EFI_STATUS
(EFIAPI *SHELLENV_EXECUTE) (
IN EFI_HANDLE *ParentImageHandle,
IN CHAR16 *CommandLine,
IN BOOLEAN DebugOutput
);
And that would imply that ShellExecute() should be calling with ParentHandle
and not *ParentHandle in UefiShellLib.c
https://svn.code.sf.net/p/edk2/code/trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.cEFI_STATUS
EFIAPI
ShellExecute (
IN EFI_HANDLE *ParentHandle,
IN CHAR16 *CommandLine OPTIONAL,
IN BOOLEAN Output OPTIONAL,
IN CHAR16 **EnvironmentVariables OPTIONAL,
OUT EFI_STATUS *Status OPTIONAL
)
{
EFI_STATUS CmdStatus;
//
// Check for UEFI Shell 2.0 protocols
//
if (gEfiShellProtocol != NULL) {
//
// Call UEFI Shell 2.0 version (not using Output parameter)
//
return (gEfiShellProtocol->Execute(ParentHandle,
CommandLine,
EnvironmentVariables,
Status));
}
//
// Check for EFI shell
//
if (mEfiShellEnvironment2 != NULL) {
//
// Call EFI Shell version.
// Due to oddity in the EFI shell we want to dereference the ParentHandle
here
//
CmdStatus = (mEfiShellEnvironment2->Execute(*ParentHandle,
CommandLine,
Output));
//
Thanks,
Andrew Fish
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel