audk/ShellPkg
Laszlo Ersek 7eb3bb6c55 ShellPkg/UefiHandleParsingLib: fix retval for empty child controller array
The ParseHandleDatabaseForChildControllers() function intends to work like
this:

(1) It allocates a "HandleBufferForReturn" local array that's guaranteed
    to be big enough for all found handles,

(2) it collects the handles, both counting them in the (mandatory)
    "MatchingHandleCount" output parameter, and saving them in the local
    "HandleBufferForReturn" array,

(3) if the caller is not interested in the actual handles, then
    "HandleBufferForReturn" is released,

(4) if the caller is interested in the handles, and we've found some, then
    "HandleBufferForReturn" is passed out through the
    "MatchingHandleBuffer" output parameter,

(5) if the caller is interested in the actual handles, but we've found
    none, then the "MatchingHandleBuffer" output parameter is set to NULL.

The ASSERT() at the end of the function makes this clear, but the
implementation does not conform to (5). Fix it.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Tapan Shah <tapandshah@hpe.com>
Reported-by: Tapan Shah <tapandshah@hpe.com>
Ref: https://tianocore.acgmultimedia.com/show_bug.cgi?id=112
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Tapan Shah <tapandshah@hpe.com>
2016-09-08 20:43:37 +02:00
..
Application ShellPkg: Fix the incorrect return status in function FindFiles() 2016-09-01 16:38:07 +08:00
Include ShellPkg/UefiHandleParsingLib: fix IN/OUT notation in child ctrlr parsing 2016-09-08 20:42:28 +02:00
Library ShellPkg/UefiHandleParsingLib: fix retval for empty child controller array 2016-09-08 20:43:37 +02:00
Contributions.txt */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
License.txt
Readme.txt
ShellPkg.dec ShellPkg: Merge Ping6 and Ifconfig6 tools to Shell command. 2016-03-08 15:01:29 +08:00
ShellPkg.dsc ShellPkg DSC: Add build option to disable deprecated APIs 2016-08-08 11:00:11 +08:00

Readme.txt

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

============================================================================
                                 OVERVIEW
============================================================================
The UEFI 2.0 shell provides a standard pre-boot command line processor.
It is similar to the EDK EFI Shell or a *nix command line parser.

============================================================================
                    HOW TO INCORPORATE THIS SHELL INTO NT32
============================================================================
The instructions below are included as a sample and template on how a 
developer may integrate this code into an existing platform:

1. Add this shell build to the NT32 build:
   Add the shell.inf to the [components] section as it is in the ShellPkg.dsc.

2. Update system PCDs to support this new module
   Update the PCD as follows using the Shell's PCD:
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }

3. Remove the old shell from the NT32 Firmware list
   Remove the FILE APPLICATION section for the old shell.

4. Add this shell to the NT32 firmware list
   Add the Shell.INF to the end of the list of DXE modules.

5. Build NT32


============================================================================