From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42254) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aeqHQ-0002v7-NE for qemu-devel@nongnu.org; Sat, 12 Mar 2016 15:36:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aeqHN-0003sN-GO for qemu-devel@nongnu.org; Sat, 12 Mar 2016 15:36:56 -0500 From: rutu.shah.26@gmail.com Date: Sun, 13 Mar 2016 02:06:34 +0530 Message-Id: <1457814994-10698-1-git-send-email-rutu.shah.26@gmail.com> Subject: [Qemu-devel] [PATCH] Added NULL check for qemu_find_file() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Rutuja Shah , mark.cave-ayland@ilande.co.uk, agraf@suse.de, chouteau@adacore.com, blauwirbel@gmail.com, qemu-ppc@nongnu.org, stefanha@redhat.com, scottwood@freescale.com From: Rutuja Shah This patch adds NULL check for return value from qemu_find_file(), where it is missing. It avoids unnecessary function calls with NULL parameter which in turn return -1. Especially, incase of load_uimage(), two functions are called which return -1 on passing NULL filename. --- hw/ppc/e500.c | 17 +++++++++++++---- hw/sparc/leon3.c | 6 +++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index 09154fa..006adf1 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -1016,15 +1016,24 @@ void ppce500_init(MachineState *machine, PPCE500Params *params) } filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); - bios_size = load_elf(filename, NULL, NULL, &bios_entry, &loadaddr, NULL, - 1, PPC_ELF_MACHINE, 0, 0); + if (filename) { + bios_size = load_elf(filename, NULL, NULL, &bios_entry, &loadaddr, NULL, + 1, PPC_ELF_MACHINE, 0, 0); + } else { + bios_size = -1; + } + if (bios_size < 0) { /* * Hrm. No ELF image? Try a uImage, maybe someone is giving us an * ePAPR compliant kernel */ - kernel_size = load_uimage(filename, &bios_entry, &loadaddr, NULL, - NULL, NULL); + if (filename) { + kernel_size = load_uimage(filename, &bios_entry, &loadaddr, NULL, + NULL, NULL); + } else { + kernel_size = -1; + } if (kernel_size < 0) { fprintf(stderr, "qemu: could not load firmware '%s'\n", filename); exit(1); diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c index c579f5b..b4e9334 100644 --- a/hw/sparc/leon3.c +++ b/hw/sparc/leon3.c @@ -168,7 +168,11 @@ static void leon3_generic_hw_init(MachineState *machine) } filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); - bios_size = get_image_size(filename); + if (filename) { + bios_size = get_image_size(filename); + } else { + bios_size = -1; + } if (bios_size > prom_size) { fprintf(stderr, "qemu: could not load prom '%s': file too big\n", 1.9.1 Signed-off-by: Rutuja Shah Regards Rutuja Shah