@@ -187,7 +187,6 @@ static void fw_cfg_bootsplash(FWCfgState *s)
/* insert splash time if user configurated */
if (boot_splash_time) {
int64_t bst_val = qemu_opt_get_number(opts, "splash-time", -1);
- uint16_t bst_le16;
/* validate the input */
if (bst_val < 0 || bst_val > 0xffff) {
@@ -196,9 +195,10 @@ static void fw_cfg_bootsplash(FWCfgState *s)
exit(1);
}
/* use little endian format */
- bst_le16 = cpu_to_le16(bst_val);
+ s->boot_splash.time_le16 = cpu_to_le16(bst_val);
fw_cfg_add_file(s, "etc/boot-menu-wait",
- g_memdup(&bst_le16, sizeof bst_le16), sizeof bst_le16);
+ &s->boot_splash.time_le16,
+ sizeof(s->boot_splash.time_le16));
}
/* insert splash file if user configurated */
@@ -55,6 +55,9 @@ struct FWCfgState {
MemoryRegion dma_iomem;
uint32_t reboot_timeout;
+ struct {
+ uint16_t time_le16;
+ } boot_splash;
};
struct FWCfgIoState {
Similar to the previous commit, use the FWCfgState lifetime state to hold the 'bst_le16' variable content (renaned as time_le16). Doing so we avoid a memory leak. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- hw/nvram/fw_cfg.c | 6 +++--- include/hw/nvram/fw_cfg.h | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-)