mirror of
https://git.proxmox.com/git/mirror_edk2
synced 2026-02-03 19:52:39 +00:00
The HDiskImageSave() function copies a device path using DuplicateDevicePath() and passes that device path to gBS->LocateDevicePath() that changes the value of the device path pointer. When FreePool() is called with the modified device path pointer, the FreePool() service generates an ASSERT() because the signature for the pool head can not be found. The function HDiskImageRead() immediately above HDiskImageSave() has the correct algorithm that uses an additional local variable called DupDevicePathForFree to preserve the pointer to the allocated buffer so it can be used in the call to FreePool(). Bug: <https://bugzilla.tianocore.org/show_bug.cgi?id=131> Cc: Jaben Carsey <jaben.carsey@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Jaben Carsey <Jaben.carsey@intel.com> |
||
|---|---|---|
| .. | ||
| Application | ||
| Include | ||
| Library | ||
| Contributions.txt | ||
| License.txt | ||
| Readme.txt | ||
| ShellPkg.dec | ||
| ShellPkg.dsc | ||
============================================================================
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
============================================================================