Accepting request 893847 from home:jziviani:branches:Virtualization
- Brotli VLA error was already fixed in v5.2 but the patches wasn't included in v6.0. This change fixes that - Patches added: brotli-fix-actual-variable-array-paramet.patch hw-rx-rx-gdbsim-Do-not-accept-invalid-me.patch ui-Fix-memory-leak-in-qemu_xkeymap_mappi.patch OBS-URL: https://build.opensuse.org/request/show/893847 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=648
This commit is contained in:
parent
ca7247c1a8
commit
43ff495587
49
brotli-fix-actual-variable-array-paramet.patch
Normal file
49
brotli-fix-actual-variable-array-paramet.patch
Normal file
@ -0,0 +1,49 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Fri, 5 Mar 2021 13:25:44 -0700
|
||||
Subject: brotli: fix actual variable-array parameters to match declaration
|
||||
|
||||
References: boo#1181922
|
||||
|
||||
GCC 11 complains about the mismatch between the variable-array
|
||||
parameters not being defined as such in the actual function definition.
|
||||
Make them match.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
c/dec/decode.c | 6 ++++--
|
||||
c/enc/encode.c | 5 +++--
|
||||
2 files changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c b/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
|
||||
index 114c5057d7d91f5a634167e00d84..bb6f1ab6cc42f54720fd07f665e3 100644
|
||||
--- a/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
|
||||
+++ b/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
|
||||
@@ -2030,8 +2030,10 @@ static BROTLI_NOINLINE BrotliDecoderErrorCode SafeProcessCommands(
|
||||
}
|
||||
|
||||
BrotliDecoderResult BrotliDecoderDecompress(
|
||||
- size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size,
|
||||
- uint8_t* decoded_buffer) {
|
||||
+ size_t encoded_size,
|
||||
+ const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
|
||||
+ size_t* decoded_size,
|
||||
+ uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]) {
|
||||
BrotliDecoderState s;
|
||||
BrotliDecoderResult result;
|
||||
size_t total_out = 0;
|
||||
diff --git a/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c b/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c
|
||||
index 68548ef55af8036d6f0fe720e721..ab0a4906060c98461102d45ab61d 100644
|
||||
--- a/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c
|
||||
+++ b/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c
|
||||
@@ -1470,8 +1470,9 @@ static size_t MakeUncompressedStream(
|
||||
|
||||
BROTLI_BOOL BrotliEncoderCompress(
|
||||
int quality, int lgwin, BrotliEncoderMode mode, size_t input_size,
|
||||
- const uint8_t* input_buffer, size_t* encoded_size,
|
||||
- uint8_t* encoded_buffer) {
|
||||
+ const uint8_t input_buffer[BROTLI_ARRAY_PARAM(input_size)],
|
||||
+ size_t* encoded_size,
|
||||
+ uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(*encoded_size)]) {
|
||||
BrotliEncoderState* s;
|
||||
size_t out_size = *encoded_size;
|
||||
const uint8_t* input_start = input_buffer;
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6ffc77f1d0e614c0f9b05329be58af08284d7d00063ef72cda10d54ef40c89ba
|
||||
size 52160
|
||||
oid sha256:2c4897a39161af89a93dc5d80baac237a8839cfb246867cf2f440baa42dce9db
|
||||
size 44964
|
||||
|
@ -1,77 +0,0 @@
|
||||
Author: Adrian Herrera <adr.her.arc.95@gmail.com>
|
||||
Date: Mon Mar 22 21:06:47 2021 +0000
|
||||
Subject: Fix VLA parameter warning
|
||||
|
||||
Make VLA buffer types consistent in declarations and definitions.
|
||||
Resolves build crash when using -Werror due to "vla-parameter" warning.
|
||||
|
||||
Signed-off-by: Adrian Herrera <adr.her.arc.95@gmail.com>
|
||||
|
||||
Taken from: https://github.com/google/brotli/pull/893
|
||||
|
||||
diff --git a/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c b/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
|
||||
index 114c5057d..bb6f1ab6c 100644
|
||||
--- a/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
|
||||
+++ b/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
|
||||
@@ -2030,8 +2030,10 @@ static BROTLI_NOINLINE BrotliDecoderErrorCode SafeProcessCommands(
|
||||
}
|
||||
|
||||
BrotliDecoderResult BrotliDecoderDecompress(
|
||||
- size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size,
|
||||
- uint8_t* decoded_buffer) {
|
||||
+ size_t encoded_size,
|
||||
+ const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
|
||||
+ size_t* decoded_size,
|
||||
+ uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]) {
|
||||
BrotliDecoderState s;
|
||||
BrotliDecoderResult result;
|
||||
size_t total_out = 0;
|
||||
diff --git a/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c b/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c
|
||||
index 68548ef55..ab0a49060 100644
|
||||
--- a/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c
|
||||
+++ b/roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c
|
||||
@@ -1470,8 +1470,9 @@ static size_t MakeUncompressedStream(
|
||||
|
||||
BROTLI_BOOL BrotliEncoderCompress(
|
||||
int quality, int lgwin, BrotliEncoderMode mode, size_t input_size,
|
||||
- const uint8_t* input_buffer, size_t* encoded_size,
|
||||
- uint8_t* encoded_buffer) {
|
||||
+ const uint8_t input_buffer[BROTLI_ARRAY_PARAM(input_size)],
|
||||
+ size_t* encoded_size,
|
||||
+ uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(*encoded_size)]) {
|
||||
BrotliEncoderState* s;
|
||||
size_t out_size = *encoded_size;
|
||||
const uint8_t* input_start = input_buffer;
|
||||
diff --git a/roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/dec/decode.c b/roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/dec/decode.c
|
||||
index 114c5057d..bb6f1ab6c 100644
|
||||
--- a/roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/dec/decode.c
|
||||
+++ b/roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/dec/decode.c
|
||||
@@ -2030,8 +2030,10 @@ static BROTLI_NOINLINE BrotliDecoderErrorCode SafeProcessCommands(
|
||||
}
|
||||
|
||||
BrotliDecoderResult BrotliDecoderDecompress(
|
||||
- size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size,
|
||||
- uint8_t* decoded_buffer) {
|
||||
+ size_t encoded_size,
|
||||
+ const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
|
||||
+ size_t* decoded_size,
|
||||
+ uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]) {
|
||||
BrotliDecoderState s;
|
||||
BrotliDecoderResult result;
|
||||
size_t total_out = 0;
|
||||
diff --git a/roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/enc/encode.c b/roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/enc/encode.c
|
||||
index 68548ef55..ab0a49060 100644
|
||||
--- a/roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/enc/encode.c
|
||||
+++ b/roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/enc/encode.c
|
||||
@@ -1470,8 +1470,9 @@ static size_t MakeUncompressedStream(
|
||||
|
||||
BROTLI_BOOL BrotliEncoderCompress(
|
||||
int quality, int lgwin, BrotliEncoderMode mode, size_t input_size,
|
||||
- const uint8_t* input_buffer, size_t* encoded_size,
|
||||
- uint8_t* encoded_buffer) {
|
||||
+ const uint8_t input_buffer[BROTLI_ARRAY_PARAM(input_size)],
|
||||
+ size_t* encoded_size,
|
||||
+ uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(*encoded_size)]) {
|
||||
BrotliEncoderState* s;
|
||||
size_t out_size = *encoded_size;
|
||||
const uint8_t* input_start = input_buffer;
|
37
hw-rx-rx-gdbsim-Do-not-accept-invalid-me.patch
Normal file
37
hw-rx-rx-gdbsim-Do-not-accept-invalid-me.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>
|
||||
Date: Thu, 8 Apr 2021 00:30:56 +0200
|
||||
Subject: hw/rx/rx-gdbsim: Do not accept invalid memory size
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 9197b5d4b5f163455c891baec531ae73f5d3a73a
|
||||
References: bsc#1186000
|
||||
|
||||
We check the amount of RAM is enough, warn when it is
|
||||
not, but if so we neglect to bail out. Fix that by
|
||||
adding the missing exit() call.
|
||||
|
||||
Fixes: bda19d7bb56 ("hw/rx: Add RX GDB simulator")
|
||||
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
|
||||
Reviewed-by: Yoshinori Sato <ysato@users.sourceforge.jp>
|
||||
Message-Id: <20210407223056.1870497-1-f4bug@amsat.org>
|
||||
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
|
||||
Signed-off-by: Jose R. Ziviani <jziviani@suse.de>
|
||||
---
|
||||
hw/rx/rx-gdbsim.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/hw/rx/rx-gdbsim.c b/hw/rx/rx-gdbsim.c
|
||||
index b1d7c2488ff332cfc3de1e39f6d4..4e4ececae4b060ea75e6454f3a8c 100644
|
||||
--- a/hw/rx/rx-gdbsim.c
|
||||
+++ b/hw/rx/rx-gdbsim.c
|
||||
@@ -93,6 +93,7 @@ static void rx_gdbsim_init(MachineState *machine)
|
||||
char *sz = size_to_str(mc->default_ram_size);
|
||||
error_report("Invalid RAM size, should be more than %s", sz);
|
||||
g_free(sz);
|
||||
+ exit(1);
|
||||
}
|
||||
|
||||
/* Allocate memory space */
|
10
qemu.changes
10
qemu.changes
@ -1,3 +1,13 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon May 17 20:34:14 UTC 2021 - José Ricardo Ziviani <jose.ziviani@suse.com>
|
||||
|
||||
- Brotli VLA error was already fixed in v5.2 but the patches wasn't
|
||||
included in v6.0. This change fixed that
|
||||
- Patches added:
|
||||
brotli-fix-actual-variable-array-paramet.patch
|
||||
hw-rx-rx-gdbsim-Do-not-accept-invalid-me.patch
|
||||
ui-Fix-memory-leak-in-qemu_xkeymap_mappi.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 17 09:30:58 UTC 2021 - Martin Liška <mliska@suse.cz>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file
|
||||
# spec file for package qemu
|
||||
#
|
||||
# Copyright (c) 2021 SUSE LLC
|
||||
#
|
||||
@ -177,7 +177,8 @@ Patch00041: usb-Help-compiler-out-to-avoid-a-warning.patch
|
||||
Patch00042: module-for-virtio-gpu-pre-load-module-to.patch
|
||||
Patch00043: qom-handle-case-of-chardev-spice-module-.patch
|
||||
Patch00044: doc-add-our-support-doc-to-the-main-proj.patch
|
||||
Patch00045: fix-brotli-vla-error.patch
|
||||
Patch00045: ui-Fix-memory-leak-in-qemu_xkeymap_mappi.patch
|
||||
Patch00046: hw-rx-rx-gdbsim-Do-not-accept-invalid-me.patch
|
||||
# Patches applied in roms/seabios/:
|
||||
Patch01000: seabios-use-python2-explicitly-as-needed.patch
|
||||
Patch01001: seabios-switch-to-python3-as-needed.patch
|
||||
@ -193,6 +194,8 @@ Patch03000: sgabios-Makefile-fix-issues-of-build-rep.patch
|
||||
Patch03001: roms-sgabios-Fix-csum8-to-be-built-by-ho.patch
|
||||
# Patches applied in roms/qboot/:
|
||||
Patch11000: qboot-add-cross.ini-file-to-handle-aarch.patch
|
||||
# Patches applied in roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/:
|
||||
Patch27000: brotli-fix-actual-variable-array-paramet.patch
|
||||
|
||||
# Please do not add patches manually here.
|
||||
|
||||
@ -1054,6 +1057,7 @@ This package records qemu testsuite results and represents successful testing.
|
||||
%patch00044 -p1
|
||||
%endif
|
||||
%patch00045 -p1
|
||||
%patch00046 -p1
|
||||
%patch01000 -p1
|
||||
%patch01001 -p1
|
||||
%patch01002 -p1
|
||||
@ -1067,6 +1071,7 @@ This package records qemu testsuite results and represents successful testing.
|
||||
%patch03000 -p1
|
||||
%patch03001 -p1
|
||||
%patch11000 -p1
|
||||
%patch27000 -p1
|
||||
|
||||
%if "%{name}" != "qemu-linux-user"
|
||||
# for the record, this set of firmware files is installed, but we don't
|
||||
|
80
ui-Fix-memory-leak-in-qemu_xkeymap_mappi.patch
Normal file
80
ui-Fix-memory-leak-in-qemu_xkeymap_mappi.patch
Normal file
@ -0,0 +1,80 @@
|
||||
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>
|
||||
Date: Fri, 30 Apr 2021 17:50:09 +0200
|
||||
Subject: ui: Fix memory leak in qemu_xkeymap_mapping_table()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 7c06a34c8c4f2c883d6ab6b15faa214d4ebfb269
|
||||
References: bsc#1185999
|
||||
|
||||
Refactor qemu_xkeymap_mapping_table() to have a single exit point,
|
||||
so we can easily free the memory allocated by XGetAtomName().
|
||||
|
||||
This fixes when running a binary configured with --enable-sanitizers:
|
||||
|
||||
Direct leak of 22 byte(s) in 1 object(s) allocated from:
|
||||
#0 0x561344a7473f in malloc (qemu-system-x86_64+0x1dab73f)
|
||||
#1 0x7fa4d9dc08aa in XGetAtomName (/lib64/libX11.so.6+0x2a8aa)
|
||||
|
||||
Fixes: 2ec78706d18 ("ui: convert GTK and SDL1 frontends to keycodemapdb")
|
||||
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
|
||||
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||
Message-Id: <20210430155009.259755-1-philmd@redhat.com>
|
||||
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
|
||||
Signed-off-by: Jose R. Ziviani <jziviani@suse.de>
|
||||
---
|
||||
ui/x_keymap.c | 15 ++++++++++-----
|
||||
1 file changed, 10 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/ui/x_keymap.c b/ui/x_keymap.c
|
||||
index 555086fb6bd572aeb6dda17bdd15..2ce7b899615f8368c6a6e6984eab 100644
|
||||
--- a/ui/x_keymap.c
|
||||
+++ b/ui/x_keymap.c
|
||||
@@ -56,6 +56,7 @@ const guint16 *qemu_xkeymap_mapping_table(Display *dpy, size_t *maplen)
|
||||
{
|
||||
XkbDescPtr desc;
|
||||
const gchar *keycodes = NULL;
|
||||
+ const guint16 *map;
|
||||
|
||||
/* There is no easy way to determine what X11 server
|
||||
* and platform & keyboard driver is in use. Thus we
|
||||
@@ -83,21 +84,21 @@ const guint16 *qemu_xkeymap_mapping_table(Display *dpy, size_t *maplen)
|
||||
if (check_for_xwin(dpy)) {
|
||||
trace_xkeymap_keymap("xwin");
|
||||
*maplen = qemu_input_map_xorgxwin_to_qcode_len;
|
||||
- return qemu_input_map_xorgxwin_to_qcode;
|
||||
+ map = qemu_input_map_xorgxwin_to_qcode;
|
||||
} else if (check_for_xquartz(dpy)) {
|
||||
trace_xkeymap_keymap("xquartz");
|
||||
*maplen = qemu_input_map_xorgxquartz_to_qcode_len;
|
||||
- return qemu_input_map_xorgxquartz_to_qcode;
|
||||
+ map = qemu_input_map_xorgxquartz_to_qcode;
|
||||
} else if ((keycodes && g_str_has_prefix(keycodes, "evdev")) ||
|
||||
(XKeysymToKeycode(dpy, XK_Page_Up) == 0x70)) {
|
||||
trace_xkeymap_keymap("evdev");
|
||||
*maplen = qemu_input_map_xorgevdev_to_qcode_len;
|
||||
- return qemu_input_map_xorgevdev_to_qcode;
|
||||
+ map = qemu_input_map_xorgevdev_to_qcode;
|
||||
} else if ((keycodes && g_str_has_prefix(keycodes, "xfree86")) ||
|
||||
(XKeysymToKeycode(dpy, XK_Page_Up) == 0x63)) {
|
||||
trace_xkeymap_keymap("kbd");
|
||||
*maplen = qemu_input_map_xorgkbd_to_qcode_len;
|
||||
- return qemu_input_map_xorgkbd_to_qcode;
|
||||
+ map = qemu_input_map_xorgkbd_to_qcode;
|
||||
} else {
|
||||
trace_xkeymap_keymap("NULL");
|
||||
g_warning("Unknown X11 keycode mapping '%s'.\n"
|
||||
@@ -109,6 +110,10 @@ const guint16 *qemu_xkeymap_mapping_table(Display *dpy, size_t *maplen)
|
||||
" - xprop -root\n"
|
||||
" - xdpyinfo\n",
|
||||
keycodes ? keycodes : "<null>");
|
||||
- return NULL;
|
||||
+ map = NULL;
|
||||
}
|
||||
+ if (keycodes) {
|
||||
+ XFree((void *)keycodes);
|
||||
+ }
|
||||
+ return map;
|
||||
}
|
Loading…
Reference in New Issue
Block a user