SHA256
1
0
forked from pool/qemu
qemu/0039-linux-user-avoid-string-truncation-.patch
Bruce Rogers 0638b75726 Accepting request 702352 from home:bfrogers:branches:Virtualization
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-4.0
* Patches renamed:
  0036-util-qemu-sockets-Fix-GCC-9-build-w.patch
  -> 0036-sockets-avoid-string-truncation-war.patch
  0039-linux-user-uname-Fix-GCC-9-build-wa.patch
  -> 0039-linux-user-avoid-string-truncation-.patch
- Correct logic of which ipxe patches get included based on
  suse_version. We were wrongly excluding a gcc9 related patch for
  example
- Switch to now upstreamed version of some patches
* Patches renamed:
  0036-util-qemu-sockets-Fix-GCC-9-build-w.patch
  -> 0036-sockets-avoid-string-truncation-war.patch
  0039-linux-user-uname-Fix-GCC-9-build-wa.patch
  -> 0039-linux-user-avoid-string-truncation-.patch
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-4.0
- Create /usr/share/qemu/firmware and /etc/qemu/firmware directories
  in support of the firmware descriptor feature now in use as of
  libvirt v5.2
- Correct logic of which ipxe patches get included based on
  suse_version. We were wrongly excluding a gcc9 related patch for
  example
- Switch to now upstreamed version of some patches
* Patches renamed:
  0036-util-qemu-sockets-Fix-GCC-9-build-w.patch
  -> 0036-sockets-avoid-string-truncation-war.patch
  0039-linux-user-uname-Fix-GCC-9-build-wa.patch
  -> 0039-linux-user-avoid-string-truncation-.patch
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-4.0
- Create /usr/share/qemu/firmware and /etc/qemu/firmware directories
  in support of the firmware descriptor feature now in use as of
  libvirt v5.2

OBS-URL: https://build.opensuse.org/request/show/702352
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=468
2019-05-11 15:08:13 +00:00

47 lines
2.0 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Wed, 1 May 2019 15:46:46 +0100
Subject: linux-user: avoid string truncation warnings in uname field copying
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In file included from /usr/include/string.h:494,
from include/qemu/osdep.h:101,
from linux-user/uname.c:20:
In function strncpy,
inlined from sys_uname at linux-user/uname.c:94:3:
/usr/include/bits/string_fortified.h:106:10: warning: __builtin_strncpy output may be truncated copying 64 bytes from a string of length 64 [-Wstringop-truncation]
106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We don't care where the NUL terminator in the original uname
field was. It suffices to copy the entire original field and
simply force a NUL terminator at the end of the new field.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20190501144646.4851-1-berrange@redhat.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
[BR: Played with indent to avoid error from checkpatch.pl]
Signed-off-by: Bruce Rogers <brogers@suse.com>
---
linux-user/uname.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/linux-user/uname.c b/linux-user/uname.c
index 313b79dbad..0c6ddf2ad9 100644
--- a/linux-user/uname.c
+++ b/linux-user/uname.c
@@ -72,9 +72,8 @@ const char *cpu_to_uname_machine(void *cpu_env)
#define COPY_UTSNAME_FIELD(dest, src) \
do { \
- /* __NEW_UTS_LEN doesn't include terminating null */ \
- (void) strncpy((dest), (src), __NEW_UTS_LEN); \
- (dest)[__NEW_UTS_LEN] = '\0'; \
+ memcpy((dest), (src), MIN(sizeof(src), sizeof(dest))); \
+ (dest)[sizeof(dest) - 1] = '\0'; \
} while (0)
int sys_uname(struct new_utsname *buf)