diff options
-rw-r--r-- | src/Makefile.housekeeping | 2 | ||||
-rw-r--r-- | src/util/elf2efi.c | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping index 4b09e81f..1b175b95 100644 --- a/src/Makefile.housekeeping +++ b/src/Makefile.housekeeping @@ -454,7 +454,7 @@ endif CFLAGS += $(WORKAROUND_CFLAGS) $(EXTRA_CFLAGS) ASFLAGS += $(WORKAROUND_ASFLAGS) $(EXTRA_ASFLAGS) LDFLAGS += $(WORKAROUND_LDFLAGS) $(EXTRA_LDFLAGS) -HOST_CFLAGS += $(WORKAROUND_CFLAGS) -O2 -g +HOST_CFLAGS += -O2 -g # Inhibit -Werror if NO_WERROR is specified on make command line # diff --git a/src/util/elf2efi.c b/src/util/elf2efi.c index 2c5b9df8..bcd53c9a 100644 --- a/src/util/elf2efi.c +++ b/src/util/elf2efi.c @@ -458,6 +458,7 @@ static struct pe_section * process_section ( struct elf_file *elf, struct pe_header *pe_header ) { struct pe_section *new; const char *name; + size_t name_len; size_t section_memsz; size_t section_filesz; unsigned long code_start; @@ -494,7 +495,10 @@ static struct pe_section * process_section ( struct elf_file *elf, memset ( new, 0, sizeof ( *new ) + section_filesz ); /* Fill in section header details */ - strncpy ( ( char * ) new->hdr.Name, name, sizeof ( new->hdr.Name ) ); + name_len = strlen ( name ); + if ( name_len > sizeof ( new->hdr.Name ) ) + name_len = sizeof ( new->hdr.Name ); + memcpy ( new->hdr.Name, name, name_len ); new->hdr.Misc.VirtualSize = section_memsz; new->hdr.VirtualAddress = shdr->sh_addr; new->hdr.SizeOfRawData = section_filesz; |