aboutsummaryrefslogtreecommitdiff
path: root/hw/riscv/boot.c
diff options
context:
space:
mode:
authorDaniel Henrique Barboza <dbarboza@ventanamicro.com>2023-01-02 08:52:34 -0300
committerAlistair Francis <alistair.francis@wdc.com>2023-01-20 10:14:13 +1000
commit1db0c57adeb981c9581f7729e8e8dfb60bdb4e7c (patch)
tree14531285c20bb64979da9e50b481558baf2d3a0b /hw/riscv/boot.c
parent60c7dfa2a3d7eb3919054367c2d03d4fc1bef3f1 (diff)
downloadqemu-1db0c57adeb981c9581f7729e8e8dfb60bdb4e7c.zip
qemu-1db0c57adeb981c9581f7729e8e8dfb60bdb4e7c.tar.gz
qemu-1db0c57adeb981c9581f7729e8e8dfb60bdb4e7c.tar.bz2
hw/riscv/boot.c: exit early if filename is NULL in load functions
riscv_load_firmware(), riscv_load_initrd() and riscv_load_kernel() works under the assumption that a 'filename' parameter is always not NULL. This is currently the case since all callers of these functions are checking for NULL before calling them. Add an g_assert() to make sure that a NULL value in these cases are to be considered a bug. Suggested-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Reviewed-by: Bin Meng <bmeng@tinylab.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20230102115241.25733-5-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Diffstat (limited to 'hw/riscv/boot.c')
-rw-r--r--hw/riscv/boot.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c
index 98b80af..31aa338 100644
--- a/hw/riscv/boot.c
+++ b/hw/riscv/boot.c
@@ -153,6 +153,8 @@ target_ulong riscv_load_firmware(const char *firmware_filename,
uint64_t firmware_entry, firmware_end;
ssize_t firmware_size;
+ g_assert(firmware_filename != NULL);
+
if (load_elf_ram_sym(firmware_filename, NULL, NULL, NULL,
&firmware_entry, NULL, &firmware_end, NULL,
0, EM_RISCV, 1, 0, NULL, true, sym_cb) > 0) {
@@ -177,6 +179,8 @@ target_ulong riscv_load_kernel(const char *kernel_filename,
{
uint64_t kernel_load_base, kernel_entry;
+ g_assert(kernel_filename != NULL);
+
/*
* NB: Use low address not ELF entry point to ensure that the fw_dynamic
* behaviour when loading an ELF matches the fw_payload, fw_jump and BBL
@@ -209,6 +213,8 @@ hwaddr riscv_load_initrd(const char *filename, uint64_t mem_size,
{
ssize_t size;
+ g_assert(filename != NULL);
+
/*
* We want to put the initrd far enough into RAM that when the
* kernel is uncompressed it will not clobber the initrd. However