]> git.proxmox.com Git - mirror_qemu.git/commitdiff
elf_ops.h: Don't truncate name of the ROM blobs we create
authorPeter Maydell <peter.maydell@linaro.org>
Sun, 29 Nov 2020 20:39:22 +0000 (20:39 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 15 Dec 2020 12:04:30 +0000 (12:04 +0000)
Currently the load_elf code assembles the ROM blob name into a
local 128 byte fixed-size array. Use g_strdup_printf() instead so
that we don't truncate the pathname if it happens to be long.
(This matters mostly for monitor 'info roms' output and for the
error messages if ROM blobs overlap.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20201129203923.10622-4-peter.maydell@linaro.org

include/hw/elf_ops.h

index 6fdff3dced59d13e10e40ad936c98917877a452d..53e0152af535a2c8bc6f9d69173338d69de0b8a3 100644 (file)
@@ -330,7 +330,6 @@ static int glue(load_elf, SZ)(const char *name, int fd,
     uint64_t addr, low = (uint64_t)-1, high = 0;
     GMappedFile *mapped_file = NULL;
     uint8_t *data = NULL;
-    char label[128];
     int ret = ELF_LOAD_FAILED;
 
     if (read(fd, &ehdr, sizeof(ehdr)) != sizeof(ehdr))
@@ -544,7 +543,8 @@ static int glue(load_elf, SZ)(const char *name, int fd,
              */
             if (mem_size != 0) {
                 if (load_rom) {
-                    snprintf(label, sizeof(label), "phdr #%d: %s", i, name);
+                    g_autofree char *label =
+                        g_strdup_printf("phdr #%d: %s", i, name);
 
                     /*
                      * rom_add_elf_program() takes its own reference to