Pārlūkot izejas kodu

[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>
tags/v1.20.1
Michael Brown 12 gadus atpakaļ
vecāks
revīzija
09c5109b85
1 mainītis faili ar 4 papildinājumiem un 1 dzēšanām
  1. 4
    1
      src/util/elf2efi.c

+ 4
- 1
src/util/elf2efi.c Parādīt failu

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

Notiek ielāde…
Atcelt
Saglabāt