From cd6ca646c12371f0146d43ea5a6b7574342c2a7f Mon Sep 17 00:00:00 2001 From: Bruce Rogers Date: Wed, 25 Apr 2018 10:26:28 -0600 Subject: [PATCH] [efi] guard strncpy with gcc warning ignore pragma Using gcc 8 with the -Wstringop-truncation option, and with warnings treated as errors, 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 ) ); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Use gcc pragmas surrounding this line of code which avoid this warning. The strncpy usage here is correct. [BR: BSC#1090355] Signed-off-by: Bruce Rogers --- src/util/elf2efi.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/util/elf2efi.c b/src/util/elf2efi.c index 6718df77..93cdda03 100644 --- a/src/util/elf2efi.c +++ b/src/util/elf2efi.c @@ -494,7 +494,13 @@ static struct pe_section * process_section ( struct elf_file *elf, memset ( new, 0, sizeof ( *new ) + section_filesz ); /* Fill in section header details */ +/* gcc 8 warning gives false positive here - our usage is correct */ +#pragma GCC diagnostic push +#if __GNUC__ >= 8 +#pragma GCC diagnostic ignored "-Wstringop-truncation" +#endif strncpy ( ( char * ) new->hdr.Name, name, sizeof ( new->hdr.Name ) ); +#pragma GCC diagnostic pop new->hdr.Misc.VirtualSize = section_memsz; new->hdr.VirtualAddress = shdr->sh_addr; new->hdr.SizeOfRawData = section_filesz; -- 2.16.3