diff options
author | Michael Brown <mcb30@ipxe.org> | 2013-02-25 17:22:01 +0000 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2013-02-25 17:22:01 +0000 |
commit | 09c5109b8585178172c7608de8d52e9d9af0b680 (patch) | |
tree | 0aec340fff29b8caf434fb23b2f54db9b6158156 /src/util | |
parent | 3c29c8ecc187b2fdd38c87df42080dc7c5a25b81 (diff) | |
download | ipxe-09c5109b8585178172c7608de8d52e9d9af0b680.tar.gz |
[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>
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/elf2efi.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/util/elf2efi.c b/src/util/elf2efi.c index 007453e2..b28c7ef3 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; |