hw/ppc/e500.c: Handle qemu_find_file() failure
commit3b4f50bd7d16322a109a026a87a945dff660f38b
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 24 Mar 2020 12:12:16 +0000 (24 12:12 +0000)
committerDavid Gibson <david@gibson.dropbear.id.au>
Mon, 6 Apr 2020 22:55:10 +0000 (7 08:55 +1000)
tree66fab3764cb116c4cc249705a5c6818ad16cbca4
parent53ef8a92eb04ee19640f5aad3bff36cd4a36c250
hw/ppc/e500.c: Handle qemu_find_file() failure

If qemu_find_file() doesn't find the BIOS it returns NULL; we were
passing that unchecked through to load_elf(), which assumes a non-NULL
pointer and may misbehave. In practice it fails with a weird message:

  $ qemu-system-ppc -M ppce500 -display none -kernel nonesuch
  Bad address
  qemu-system-ppc: could not load firmware '(null)'

Handle the failure case better:

  $ qemu-system-ppc -M ppce500 -display none -kernel nonesuch
  qemu-system-ppc: could not find firmware/kernel file 'nonesuch'

Spotted by Coverity (CID 1238954).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20200324121216.23899-1-peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/e500.c