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

Reply via email to