aboutsummaryrefslogtreecommitdiff
path: root/hw/i386/multiboot.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2018-12-14 13:30:51 +0000
committerPeter Maydell <peter.maydell@linaro.org>2018-12-14 13:30:51 +0000
commit5250b09e57d9989efc69353d18416aedde00995e (patch)
treeed80e0ffac3d47a68156e906ce16ca544efdc768 /hw/i386/multiboot.c
parentc24323dd5f04d2a8c89f1d0d8daf0322b6fa6fc7 (diff)
hw/i386/multiboot.c: Don't use load_image()
The load_image() function is deprecated, as it does not let the caller specify how large the buffer to read the file into is. Instead use load_image_size(). While we are converting the code, add the missing error check. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-id: 20181130151712.2312-7-peter.maydell@linaro.org
Diffstat (limited to 'hw/i386/multiboot.c')
-rw-r--r--hw/i386/multiboot.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c
index 1a4344f5fc..62340687e8 100644
--- a/hw/i386/multiboot.c
+++ b/hw/i386/multiboot.c
@@ -343,7 +343,11 @@ int load_multiboot(FWCfgState *fw_cfg,
mbs.mb_buf_size = TARGET_PAGE_ALIGN(mb_mod_length + mbs.mb_buf_size);
mbs.mb_buf = g_realloc(mbs.mb_buf, mbs.mb_buf_size);
- load_image(one_file, (unsigned char *)mbs.mb_buf + offs);
+ if (load_image_size(one_file, (unsigned char *)mbs.mb_buf + offs,
+ mbs.mb_buf_size - offs) < 0) {
+ error_report("Error loading file '%s'", one_file);
+ exit(1);
+ }
mb_add_mod(&mbs, mbs.mb_buf_phys + offs,
mbs.mb_buf_phys + offs + mb_mod_length, c);