aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorKlaus Jensen <k.jensen@samsung.com>2021-03-22 06:58:38 +0100
committerKlaus Jensen <k.jensen@samsung.com>2021-03-29 18:46:47 +0200
commit9561353ddc35215141adf181d4d8f6f0d9655cc0 (patch)
treef5ca6326806fede47b3d283e87983d17bc0557f6 /hw
parentec2e6e016d24bd429792d08cf607e4c5350dcdaa (diff)
downloadqemu-9561353ddc35215141adf181d4d8f6f0d9655cc0.zip
qemu-9561353ddc35215141adf181d4d8f6f0d9655cc0.tar.gz
qemu-9561353ddc35215141adf181d4d8f6f0d9655cc0.tar.bz2
hw/block/nvme: fix resource leak in nvme_dif_rw
If nvme_map_dptr() fails, nvme_dif_rw() will leak the bounce context. Fix this by using the same error handling as everywhere else in the function. Reported-by: Coverity (CID 1451080) Fixes: 146f720c5563 ("hw/block/nvme: end-to-end data protection") Signed-off-by: Klaus Jensen <k.jensen@samsung.com> Reviewed-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/block/nvme-dif.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/block/nvme-dif.c b/hw/block/nvme-dif.c
index 2038d72..e6f04fa 100644
--- a/hw/block/nvme-dif.c
+++ b/hw/block/nvme-dif.c
@@ -432,7 +432,7 @@ uint16_t nvme_dif_rw(NvmeCtrl *n, NvmeRequest *req)
status = nvme_map_dptr(n, &req->sg, mapped_len, &req->cmd);
if (status) {
- return status;
+ goto err;
}
ctx->data.bounce = g_malloc(len);