From: Vishal Chourasia <[email protected]> Currently load_image_targphys_as() returns -1 on file open failure or when max size is exceeded. Add an explicit check for zero-sized files to catch this error early, since some callers check for size <= 0.
Also, remove the redundant size > 0 check later in the function. Reviewed-by: Philippe Mathieu-Daudé <[email protected]> Signed-off-by: Vishal Chourasia <[email protected]> Message-ID: <[email protected]> Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- hw/core/loader.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/hw/core/loader.c b/hw/core/loader.c index d7c11c18f11..590c5b02aa1 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -140,18 +140,21 @@ ssize_t load_image_targphys_as(const char *filename, return -1; } + if (size == 0) { + error_setg(errp, "empty file: %s", filename); + return -1; + } + if (size > max_sz) { error_setg(errp, "%s exceeds maximum image size (%s)", filename, size_to_str(max_sz)); return -1; } - if (size > 0) { - if (rom_add_file_fixed_as(filename, addr, -1, as) < 0) { - error_setg(errp, "could not load '%s' at %" HWADDR_PRIx, - filename, addr); - return -1; - } + if (rom_add_file_fixed_as(filename, addr, -1, as) < 0) { + error_setg(errp, "could not load '%s' at %" HWADDR_PRIx, + filename, addr); + return -1; } return size; } -- 2.51.0
