From: Michael Brown Date: Mon, 25 Feb 2013 17:22:01 +0000 (+0000) Subject: [efi] Ensure EFI binaries comply with Authenticode requirements X-Git-Tag: v1.20.1~1583 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=09c5109b8585178172c7608de8d52e9d9af0b680;p=thirdparty%2Fipxe.git [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 --- diff --git a/src/util/elf2efi.c b/src/util/elf2efi.c index 007453e24..b28c7ef33 100644 --- a/src/util/elf2efi.c +++ b/src/util/elf2efi.c @@ -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;