mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-20 20:24:28 +02:00
Correct the alignment calculation of PE/COFF attribute certificate entry.
This is to resolve the possible certificate entry retrieving issue caused by un-aligned (8-bytes) VirtualAddress in some PE/COFF image, which may break secure boot. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Qin Long <qin.long@intel.com> Reviewed-by: Siyuan Fu <siyuan.fu@intel.com> Reviewed-by: Guo Dong <guo.dong@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16449 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
8cc87d32c6
commit
2bf41ed7dc
@ -1662,7 +1662,7 @@ DxeImageVerificationHandler (
|
|||||||
//
|
//
|
||||||
for (OffSet = SecDataDir->VirtualAddress;
|
for (OffSet = SecDataDir->VirtualAddress;
|
||||||
OffSet < (SecDataDir->VirtualAddress + SecDataDir->Size);
|
OffSet < (SecDataDir->VirtualAddress + SecDataDir->Size);
|
||||||
OffSet += WinCertificate->dwLength, OffSet += ALIGN_SIZE (OffSet)) {
|
OffSet += (WinCertificate->dwLength + ALIGN_SIZE (WinCertificate->dwLength))) {
|
||||||
WinCertificate = (WIN_CERTIFICATE *) (mImageBase + OffSet);
|
WinCertificate = (WIN_CERTIFICATE *) (mImageBase + OffSet);
|
||||||
if ((SecDataDir->VirtualAddress + SecDataDir->Size - OffSet) <= sizeof (WIN_CERTIFICATE) ||
|
if ((SecDataDir->VirtualAddress + SecDataDir->Size - OffSet) <= sizeof (WIN_CERTIFICATE) ||
|
||||||
(SecDataDir->VirtualAddress + SecDataDir->Size - OffSet) < WinCertificate->dwLength) {
|
(SecDataDir->VirtualAddress + SecDataDir->Size - OffSet) < WinCertificate->dwLength) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user