Using gcc8 with the [-Werror=stringop-truncation] option, the following
error is emitted:

util/elf2efi.c:494:2: error: 'strncpy' specified bound 8 equals destination
size [-Werror=stringop-truncation]
  strncpy ( ( char * ) new->hdr.Name, name, sizeof ( new->hdr.Name ) );
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Specify one less than sizeof the target buffer to avoid this diagnostic.
Since the target buffer is pre-zeroed, the string will be NUL-terminated.

Signed-off-by: Bruce Rogers <brog...@suse.com>
---
 src/util/elf2efi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/util/elf2efi.c b/src/util/elf2efi.c
index 6718df77..58460ba2 100644
--- a/src/util/elf2efi.c
+++ b/src/util/elf2efi.c
@@ -494,7 +494,7 @@ 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 ) );
+       strncpy ( ( char * ) new->hdr.Name, name, sizeof ( new->hdr.Name ) -1 );
        new->hdr.Misc.VirtualSize = section_memsz;
        new->hdr.VirtualAddress = shdr->sh_addr;
        new->hdr.SizeOfRawData = section_filesz;
-- 
2.16.3

_______________________________________________
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

Reply via email to