From patchwork Tue Oct 18 17:16:48 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: fw_cfg: check return value of fread() Date: Tue, 18 Oct 2011 07:16:48 -0000 From: Pavel Borzenkov X-Patchwork-Id: 120466 Message-Id: <1318958208-13965-1-git-send-email-pavel.borzenkov@gmail.com> To: qemu-devel@nongnu.org Cc: qemu-trivial@nongnu.org Spotted by Clang Analyzer Signed-off-by: Pavel Borzenkov --- hw/fw_cfg.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/hw/fw_cfg.c b/hw/fw_cfg.c index 8df265c..1125e7d 100644 --- a/hw/fw_cfg.c +++ b/hw/fw_cfg.c @@ -113,6 +113,13 @@ static FILE *probe_splashfile(char *filename, int *file_sizep, int *file_typep) if (file_type == BMP_FILE) { fseek(fp, 28, SEEK_SET); fop_ret = fread(buf, 1, 2, fp); + if (fop_ret != 2) { + error_report("Could not read bpp value from '%s': %s", + filename, strerror(errno)); + fclose(fp); + fp = NULL; + return fp; + } bmp_bpp = (buf[0] + (buf[1] << 8)) & 0xffff; if (bmp_bpp != 24) { error_report("only 24bpp bmp file is supported.");