mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 23:54:02 +02:00
SecurityPkg/DxeImageVerificationHandler: fix retval on memalloc failure
A SECURITY2_FILE_AUTHENTICATION_HANDLER function is not expected to return EFI_OUT_OF_RESOURCES. We should only return EFI_SUCCESS, EFI_SECURITY_VIOLATION, or EFI_ACCESS_DENIED. In case we run out of memory while preparing "SignatureList" for AddImageExeInfo(), we should simply stick with the EFI_ACCESS_DENIED value that is already in "Status" -- from just before the "Action" condition --, and not suppress it with EFI_OUT_OF_RESOURCES. This patch does not change the control flow in the function, it only changes the "Status" outcome from API-incompatible error codes to EFI_ACCESS_DENIED, under some circumstances. Cc: Chao Zhang <chao.b.zhang@intel.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2129 Fixes: 570b3d1a7278df29878da87990e8366bd42d0ec5 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Message-Id: <20200116190705.18816-6-lersek@redhat.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> [lersek@redhat.com: push with Mike's R-b due to Chinese New Year Holiday: <https://edk2.groups.io/g/devel/message/53429>; msgid <d3fbb76dabed4e1987c512c328c82810@intel.com>]
This commit is contained in:
parent
47650a5cab
commit
f891b052c5
@ -1541,7 +1541,6 @@ Done:
|
|||||||
and non-NULL FileBuffer did authenticate, and the platform
|
and non-NULL FileBuffer did authenticate, and the platform
|
||||||
policy dictates that the DXE Foundation may execute the image in
|
policy dictates that the DXE Foundation may execute the image in
|
||||||
FileBuffer.
|
FileBuffer.
|
||||||
@retval EFI_OUT_RESOURCE Fail to allocate memory.
|
|
||||||
@retval EFI_SECURITY_VIOLATION The file specified by File did not authenticate, and
|
@retval EFI_SECURITY_VIOLATION The file specified by File did not authenticate, and
|
||||||
the platform policy dictates that File should be placed
|
the platform policy dictates that File should be placed
|
||||||
in the untrusted state. The image has been added to the file
|
in the untrusted state. The image has been added to the file
|
||||||
@ -1862,7 +1861,6 @@ DxeImageVerificationHandler (
|
|||||||
SignatureListSize = sizeof (EFI_SIGNATURE_LIST) + sizeof (EFI_SIGNATURE_DATA) - 1 + mImageDigestSize;
|
SignatureListSize = sizeof (EFI_SIGNATURE_LIST) + sizeof (EFI_SIGNATURE_DATA) - 1 + mImageDigestSize;
|
||||||
SignatureList = (EFI_SIGNATURE_LIST *) AllocateZeroPool (SignatureListSize);
|
SignatureList = (EFI_SIGNATURE_LIST *) AllocateZeroPool (SignatureListSize);
|
||||||
if (SignatureList == NULL) {
|
if (SignatureList == NULL) {
|
||||||
Status = EFI_OUT_OF_RESOURCES;
|
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
SignatureList->SignatureHeaderSize = 0;
|
SignatureList->SignatureHeaderSize = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user