audk/SecurityPkg/Library
Laszlo Ersek 61a9fa589a SecurityPkg/DxeImageVerificationHandler: keep PE/COFF info status internal
The PeCoffLoaderGetImageInfo() function may return various error codes,
such as RETURN_INVALID_PARAMETER and RETURN_UNSUPPORTED.

Such error values should not be assigned to our "Status" variable in the
DxeImageVerificationHandler() function, because "Status" generally stands
for the main exit value of the function. And
SECURITY2_FILE_AUTHENTICATION_HANDLER functions are expected to return one
of EFI_SUCCESS, EFI_SECURITY_VIOLATION, and EFI_ACCESS_DENIED only.

Introduce the "PeCoffStatus" helper variable for keeping the return value
of PeCoffLoaderGetImageInfo() internal to the function. If
PeCoffLoaderGetImageInfo() fails, we'll jump to the "Done" label with
"Status" being EFI_ACCESS_DENIED, inherited from the top of the function.

Note that this is consistent with the subsequent PE/COFF Signature check,
where we jump to the "Done" label with "Status" having been re-set to
EFI_ACCESS_DENIED.

As a consequence, we can at once remove the

  Status = EFI_ACCESS_DENIED;

assignment right after the "PeCoffStatus" check.

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
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200116190705.18816-4-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>]
2020-01-31 09:35:31 +00:00
..
AuthVariableLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
DxeImageAuthenticationStatusLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
DxeImageVerificationLib SecurityPkg/DxeImageVerificationHandler: keep PE/COFF info status internal 2020-01-31 09:35:31 +00:00
DxeRsa2048Sha256GuidedSectionExtractLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
DxeTcg2PhysicalPresenceLib SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
DxeTcgPhysicalPresenceLib SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
DxeTpm2MeasureBootLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
DxeTpmMeasureBootLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
DxeTpmMeasurementLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
FmpAuthenticationLibPkcs7 SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
FmpAuthenticationLibRsa2048Sha256 SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
HashInstanceLibSha1 SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
HashInstanceLibSha256 SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
HashInstanceLibSha384 SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
HashInstanceLibSha512 SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
HashInstanceLibSm3 SecurityPkg: introduce the SM3 digest algorithm 2019-07-19 14:31:52 +02:00
HashLibBaseCryptoRouter SecurityPkg/HashLibBaseCryptoRouter: recognize the SM3 digest algorithm 2019-07-19 14:31:55 +02:00
HashLibTpm2 SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
PeiRsa2048Sha256GuidedSectionExtractLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
PeiTcg2PhysicalPresenceLib SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
PlatformSecureLibNull SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
SmmTcg2PhysicalPresenceLib SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
Tcg2PpVendorLibNull SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
TcgPpVendorLibNull SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
TcgStorageCoreLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
TcgStorageOpalLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
Tpm2CommandLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
Tpm2DeviceLibDTpm SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
Tpm2DeviceLibRouter SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
Tpm2DeviceLibTcg2 SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
Tpm12CommandLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
Tpm12DeviceLibDTpm SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00
Tpm12DeviceLibTcg SecurityPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:23 -07:00
TpmCommLib SecurityPkg: Fix spelling errors 2019-10-23 10:23:23 -07:00