qemu/ipxe-efi-guard-strncpy-with-gcc-warning-ignore-pragma.patch
Bruce Rogers 62e852c00d Accepting request 601676 from home:bfrogers:branches:Virtualization
- Guard strncpy call with GCC pragma to disable warning about possible
  incorrect usage, when in fact it is correct. This is for gcc 8
  compatibility (bsc#1090355)
  ipxe-efi-guard-strncpy-with-gcc-warning-ignore-pragma.patch
- Add WantedBy for enable qemu-ga@.service auto start (bsc#1090369)
- Guard strncpy call with GCC pragma to disable warning about possible
  incorrect usage, when in fact it is correct. This is for gcc 8
  compatibility (bsc#1090355)
  ipxe-efi-guard-strncpy-with-gcc-warning-ignore-pragma.patch
- Add WantedBy for enable qemu-ga@.service auto start (bsc#1090369)

OBS-URL: https://build.opensuse.org/request/show/601676
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=406
2018-04-26 18:53:21 +00:00

44 lines
1.5 KiB
Diff

From cd6ca646c12371f0146d43ea5a6b7574342c2a7f Mon Sep 17 00:00:00 2001
From: Bruce Rogers <brogers@suse.com>
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 <brogers@suse.com>
---
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