david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[efi] Ensure EFI binaries comply with Authenticode requirements

Authenticode requires that the size of the raw file must equal the
size of the OptionalHeader.SizeOfHeaders plus the sum of all sections'
SizeOfRawData.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2013-02-25 17:22:01 +00:00
parent 3c29c8ecc1
commit 09c5109b85
1 changed files with 4 additions and 1 deletions

View File

@ -614,8 +614,11 @@ static void write_pe_file ( struct pe_header *pe_header,
struct pe_section *section;
unsigned long fpos = 0;
/* Align length of headers */
fpos = pe_header->nt.OptionalHeader.SizeOfHeaders =
efi_file_align ( pe_header->nt.OptionalHeader.SizeOfHeaders );
/* Assign raw data pointers */
fpos = efi_file_align ( pe_header->nt.OptionalHeader.SizeOfHeaders );
for ( section = pe_sections ; section ; section = section->next ) {
if ( section->hdr.SizeOfRawData ) {
section->hdr.PointerToRawData = fpos;