audk/MdeModulePkg/Library
Dandan Bi f7fdd620e8 MdeModulePkg/UefiBootManager: Unload image on EFI_SECURITY_VIOLATION
For the LoadImage() boot service, with EFI_SECURITY_VIOLATION retval,
the Image was loaded and an ImageHandle was created with a valid
EFI_LOADED_IMAGE_PROTOCOL, but the image can not be started right now.
This follows UEFI Spec.

But if the caller of LoadImage() doesn't have the option to defer
the execution of an image, we can not treat EFI_SECURITY_VIOLATION
like any other LoadImage() error, we should unload image for the
EFI_SECURITY_VIOLATION to avoid resource leak.

This patch is to do error handling for EFI_SECURITY_VIOLATION explicitly
for the callers in UefiBootManagerLib which don't have the policy to defer
the execution of the image.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Philippe Mathieu-Daude <philmd@redhat.com>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1992
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
2019-09-25 10:03:57 +08:00
..
AuthVariableLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
BaseBmpSupportLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
BaseHobLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
BaseIpmiLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
BaseMemoryAllocationLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
BasePlatformHookLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
BaseResetSystemLibNull MdeModulePkg/BaseResetSystemLibNull.c: Change comments of ResetSystem 2019-04-28 09:40:14 +08:00
BaseSerialPortLib16550 MdeModulePkg: BaseSerialPortLib16550: Add Mmio32 support 2019-04-29 15:50:16 +08:00
BaseSortLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
BootLogoLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
BootMaintenanceManagerUiLib MdeModulePkg/BM_UI: Add the new terminal types to related menu 2019-09-24 21:56:46 +08:00
BootManagerUiLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
BrotliCustomDecompressLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
CpuExceptionHandlerLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
CustomizedDisplayLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DebugAgentLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DeviceManagerUiLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DisplayUpdateProgressLibGraphics MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DisplayUpdateProgressLibText MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeCapsuleLibFmp MdeModulePkg/DxeCapsuleLibFmp: Unload image on EFI_SECURITY_VIOLATION 2019-09-25 10:03:57 +08:00
DxeCapsuleLibNull MdeModulePkg: Add Capsule On Disk APIs into CapsuleLib. 2019-06-26 15:10:42 +08:00
DxeCoreMemoryAllocationLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeCorePerformanceLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeCrc32GuidedSectionExtractLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeDebugPrintErrorLevelLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeFileExplorerProtocol MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeIpmiLibIpmiProtocol MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxePerformanceLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxePrintLibPrint2Protocol MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeReportStatusCodeLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeResetSystemLib MdeModulePkg/DxeResetSystemLib.c: Change comments of ResetSystem 2019-04-28 09:40:13 +08:00
DxeSecurityManagementLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
FileExplorerLib MdeModulePkg/FileExplorer: Set Handle to NULL after uninstall protocol 2019-04-28 09:32:42 +08:00
FmpAuthenticationLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
FrameBufferBltLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
LockBoxNullLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
LzmaCustomDecompressLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
NonDiscoverableDeviceRegistrationLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
OemHookStatusCodeLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PciHostBridgeLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PeiCrc32GuidedSectionExtractLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PeiDebugLibDebugPpi MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PeiDebugPrintHobLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PeiDxeDebugLibReportStatusCode MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PeiIpmiLibIpmiPpi MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PeiPerformanceLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PeiReportStatusCodeLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PeiResetSystemLib MdeModulePkg/PeiResetSystemlib.c: Change comments of ResetSystem 2019-04-28 09:40:15 +08:00
PiDxeS3BootScriptLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PiSmmCoreMemoryAllocationLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PiSmmCoreSmmServicesTableLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PlatformBootManagerLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PlatformHookLibSerialPortPpi MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
PlatformVarCleanupLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
ResetUtilityLib MdeModulePkg/ResetUtilityLib: Use STATIC_ASSERT macro 2019-09-17 09:38:59 +08:00
RuntimeDxeReportStatusCodeLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
RuntimeResetSystemLib MdeModulePkg/RuntimeResetSystemLib.c: Change comments 2019-04-28 09:40:14 +08:00
SmmCorePerformanceLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
SmmCorePlatformHookLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
SmmIpmiLibSmmIpmiProtocol MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
SmmLockBoxLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
SmmMemoryAllocationProfileLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
SmmPerformanceLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
SmmReportStatusCodeLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
SmmSmiHandlerProfileLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
TpmMeasurementLibNull MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
UefiBootManagerLib MdeModulePkg/UefiBootManager: Unload image on EFI_SECURITY_VIOLATION 2019-09-25 10:03:57 +08:00
UefiHiiLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
UefiHiiServicesLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
UefiMemoryAllocationProfileLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
UefiSortLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
VarCheckHiiLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
VarCheckLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
VarCheckPcdLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
VarCheckUefiLib MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00