51 lines
1.9 KiB
Diff
51 lines
1.9 KiB
Diff
|
|
From 1869848dd0bf4ac99ce1b272afc90d161558370c Mon Sep 17 00:00:00 2001
|
||
|
|
From: tangbinzy <tangbin_yewu@cmss.chinamobile.com>
|
||
|
|
Date: Sat, 12 Oct 2024 09:20:58 +0000
|
||
|
|
Subject: [PATCH] hw/i386/multiboot: Avoid dynamic stack allocation mainline
|
||
|
|
inclusion commit fa87341dabebe79d2e5577432a98b83c9eddf968 category: bugfix
|
||
|
|
MIME-Version: 1.0
|
||
|
|
Content-Type: text/plain; charset=UTF-8
|
||
|
|
Content-Transfer-Encoding: 8bit
|
||
|
|
|
||
|
|
---------------------------------------------------------------
|
||
|
|
|
||
|
|
Use autofree heap allocation instead of variable-length array on
|
||
|
|
the stack. Replace the snprintf() call by g_strdup_printf().
|
||
|
|
|
||
|
|
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||
|
|
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
|
||
|
|
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
||
|
|
Message-id: 20220819153931.3147384-9-peter.maydell@linaro.org
|
||
|
|
|
||
|
|
Signed-off-by: tangbinzy <tangbin_yewu@cmss.chinamobile.com>
|
||
|
|
---
|
||
|
|
hw/i386/multiboot.c | 5 ++---
|
||
|
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c
|
||
|
|
index 0a10089f14..963e29362e 100644
|
||
|
|
--- a/hw/i386/multiboot.c
|
||
|
|
+++ b/hw/i386/multiboot.c
|
||
|
|
@@ -163,6 +163,7 @@ int load_multiboot(X86MachineState *x86ms,
|
||
|
|
uint8_t *mb_bootinfo_data;
|
||
|
|
uint32_t cmdline_len;
|
||
|
|
GList *mods = NULL;
|
||
|
|
+ g_autofree char *kcmdline = NULL;
|
||
|
|
|
||
|
|
/* Ok, let's see if it is a multiboot image.
|
||
|
|
The header is 12x32bit long, so the latest entry may be 8192 - 48. */
|
||
|
|
@@ -362,9 +363,7 @@ int load_multiboot(X86MachineState *x86ms,
|
||
|
|
}
|
||
|
|
|
||
|
|
/* Commandline support */
|
||
|
|
- char kcmdline[strlen(kernel_filename) + strlen(kernel_cmdline) + 2];
|
||
|
|
- snprintf(kcmdline, sizeof(kcmdline), "%s %s",
|
||
|
|
- kernel_filename, kernel_cmdline);
|
||
|
|
+ kcmdline = g_strdup_printf("%s %s", kernel_filename, kernel_cmdline);
|
||
|
|
stl_p(bootinfo + MBI_CMDLINE, mb_add_cmdline(&mbs, kcmdline));
|
||
|
|
|
||
|
|
stl_p(bootinfo + MBI_BOOTLOADER, mb_add_bootloader(&mbs, bootloader_name));
|
||
|
|
--
|
||
|
|
2.41.0.windows.1
|
||
|
|
|