diff options
author | Cédric Le Goater <clg@kaod.org> | 2020-01-07 18:18:08 +0100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2020-01-08 12:01:02 +1100 |
commit | 3a688294e2c36575fd3e259a64a066b38e164cbb (patch) | |
tree | 7a84fc1634a25fd6a4c94f0558cefc6b0e0e889c /hw/ppc/pnv_pnor.c | |
parent | b91cad2f0751ab5c2e1b746a835ec0f45fec1c23 (diff) | |
download | qemu-3a688294e2c36575fd3e259a64a066b38e164cbb.zip qemu-3a688294e2c36575fd3e259a64a066b38e164cbb.tar.gz qemu-3a688294e2c36575fd3e259a64a066b38e164cbb.tar.bz2 |
ppc/pnv: check return value of blk_pwrite()
When updating the PNOR file contents, we should check for a possible
failure of blk_pwrite().
Fixes Coverity issue CID 1412228.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20200107171809.15556-2-clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/ppc/pnv_pnor.c')
-rw-r--r-- | hw/ppc/pnv_pnor.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/hw/ppc/pnv_pnor.c b/hw/ppc/pnv_pnor.c index bfb1e92..0e86ae2 100644 --- a/hw/ppc/pnv_pnor.c +++ b/hw/ppc/pnv_pnor.c @@ -33,6 +33,7 @@ static uint64_t pnv_pnor_read(void *opaque, hwaddr addr, unsigned size) static void pnv_pnor_update(PnvPnor *s, int offset, int size) { int offset_end; + int ret; if (s->blk) { return; @@ -42,8 +43,11 @@ static void pnv_pnor_update(PnvPnor *s, int offset, int size) offset = QEMU_ALIGN_DOWN(offset, BDRV_SECTOR_SIZE); offset_end = QEMU_ALIGN_UP(offset_end, BDRV_SECTOR_SIZE); - blk_pwrite(s->blk, offset, s->storage + offset, - offset_end - offset, 0); + ret = blk_pwrite(s->blk, offset, s->storage + offset, + offset_end - offset, 0); + if (ret < 0) { + error_report("Could not update PNOR: %s", strerror(-ret)); + } } static void pnv_pnor_write(void *opaque, hwaddr addr, uint64_t data, |