Displaying 8 results from an estimated 8 matches for "headers_sz".
2013 Nov 27
0
[PATCH 2/4] efi: Location, size and alignment of .text section
..._sz = total_sz;
+ o_hdr.code_sz = data_size;
o_hdr.entry_point = entry;
o_hdr.initialized_data_sz = data_size;
fwrite(&o_hdr, sizeof(o_hdr), 1, f);
memset(&e_hdr, 0, sizeof(e_hdr));
e_hdr.section_align = 4096;
e_hdr.file_align = 512;
- e_hdr.image_sz = total_sz;
- e_hdr.headers_sz = 512;
+ e_hdr.image_sz = hdr_sz + so_size;
+ e_hdr.headers_sz = hdr_sz;
e_hdr.subsystem = IMAGE_SUBSYSTEM_EFI_APPLICATION;
e_hdr.rva_and_sizes_nr = sizeof(e_hdr.data_directory) / sizeof(__uint64_t);
fwrite(&e_hdr, sizeof(e_hdr), 1, f);
}
else if (class == ELFCLASS64) {
- hdr_sz...
2013 Nov 27
20
[PATCH 0/4] efi: PE header generation fix
The PE headers of the generated efi file were quite buggy. And since OVMF
perform a few consistency checks, syslinux was unable to run on it. I don't
pretend to have a thorough understanding of the PE+ headers, some bugs may
remain. :)
Celelibi (4):
efi: Fix PE header field rva_and_sizes_nr
efi: Location, size and alignment of .text section
efi: Useless relocations in PE file
efi: PE
2013 Nov 27
0
[PATCH 1/4] efi: Fix PE header field rva_and_sizes_nr
...----
2 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/efi/wrapper.c b/efi/wrapper.c
index 04c895f..ec77271 100644
--- a/efi/wrapper.c
+++ b/efi/wrapper.c
@@ -102,7 +102,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size,
e_hdr.image_sz = total_sz;
e_hdr.headers_sz = 512;
e_hdr.subsystem = IMAGE_SUBSYSTEM_EFI_APPLICATION;
- e_hdr.rva_and_sizes_nr = 1;
+ e_hdr.rva_and_sizes_nr = sizeof(e_hdr.data_directory) / sizeof(__uint64_t);
fwrite(&e_hdr, sizeof(e_hdr), 1, f);
}
else if (class == ELFCLASS64) {
@@ -130,7 +130,7 @@ static void write_header(F...
2013 Nov 29
1
[PATCH 1/4] efi: Fix PE header field rva_and_sizes_nr
...15 deletions(-)
>
> diff --git a/efi/wrapper.c b/efi/wrapper.c
> index 04c895f..ec77271 100644
> --- a/efi/wrapper.c
> +++ b/efi/wrapper.c
> @@ -102,7 +102,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size,
> e_hdr.image_sz = total_sz;
> e_hdr.headers_sz = 512;
> e_hdr.subsystem = IMAGE_SUBSYSTEM_EFI_APPLICATION;
> - e_hdr.rva_and_sizes_nr = 1;
> + e_hdr.rva_and_sizes_nr = sizeof(e_hdr.data_directory) / sizeof(__uint64_t);
Since the data directories aren't ever used, can't we just delete them
and set rva_and_sizes_nr to 0?...
2013 Dec 01
0
[PATCH v2 1/4] efi: Fix PE header field rva_and_sizes_nr
...----
2 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/efi/wrapper.c b/efi/wrapper.c
index 04c895f..ec77271 100644
--- a/efi/wrapper.c
+++ b/efi/wrapper.c
@@ -102,7 +102,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size,
e_hdr.image_sz = total_sz;
e_hdr.headers_sz = 512;
e_hdr.subsystem = IMAGE_SUBSYSTEM_EFI_APPLICATION;
- e_hdr.rva_and_sizes_nr = 1;
+ e_hdr.rva_and_sizes_nr = sizeof(e_hdr.data_directory) / sizeof(__uint64_t);
fwrite(&e_hdr, sizeof(e_hdr), 1, f);
}
else if (class == ELFCLASS64) {
@@ -130,7 +130,7 @@ static void write_header(F...
2013 Dec 01
0
[PATCH v2 4/4] efi: PE file size differ from in-memory size
...l_hdr_pe32p o_hdr_pe32p;
@@ -100,7 +100,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size,
memset(&e_hdr, 0, sizeof(e_hdr));
e_hdr.section_align = 4096;
e_hdr.file_align = 512;
- e_hdr.image_sz = hdr_sz + so_size;
+ e_hdr.image_sz = hdr_sz + so_memsz;
e_hdr.headers_sz = hdr_sz;
e_hdr.subsystem = IMAGE_SUBSYSTEM_EFI_APPLICATION;
e_hdr.rva_and_sizes_nr = sizeof(e_hdr.data_directory) / sizeof(__uint64_t);
@@ -123,7 +123,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size,
memset(&e_hdr_pe32p, 0, sizeof(e_hdr_pe32p));
e_hdr_pe32...
2013 Nov 27
0
[PATCH 4/4] efi: PE file size differ from in-memory size
...nal_hdr_pe32p o_hdr_pe32p;
@@ -96,7 +96,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size,
memset(&e_hdr, 0, sizeof(e_hdr));
e_hdr.section_align = 4096;
e_hdr.file_align = 512;
- e_hdr.image_sz = hdr_sz + so_size;
+ e_hdr.image_sz = hdr_sz + so_memsz;
e_hdr.headers_sz = hdr_sz;
e_hdr.subsystem = IMAGE_SUBSYSTEM_EFI_APPLICATION;
e_hdr.rva_and_sizes_nr = sizeof(e_hdr.data_directory) / sizeof(__uint64_t);
@@ -119,7 +119,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size,
memset(&e_hdr_pe32p, 0, sizeof(e_hdr_pe32p));
e_hdr_pe32...
2013 Nov 29
1
[PATCH 2/4] efi: Location, size and alignment of .text section
On Wed, 27 Nov, at 02:38:29PM, Celelibi wrote:
> In the generated PE file, the section header for the .text section used
> to address more than the whole file. Starting at offset 0 (before the
> end of the headers) is illegal and is rejected by OVMF. Giving a size
> greater than the actual file size is also illegal and rejected.
>
> Moreover, the actual data inside the PE file