hw/block/nvme: destroy request iov before reuse
authorKlaus Jensen <k.jensen@samsung.com>
Wed, 29 Jul 2020 19:08:33 +0000 (21:08 +0200)
committerKlaus Jensen <k.jensen@samsung.com>
Wed, 2 Sep 2020 06:48:50 +0000 (08:48 +0200)
Make sure the request iov is destroyed before reuse; fixing a memory
leak.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
hw/block/nvme.c

index c04e244677424d5f98dba7e33d524049efae2a8d..c2aed4d104f3466dd9244ba6e0ac2b56a6aa4cee 100644 (file)
@@ -569,6 +569,10 @@ static void nvme_rw_cb(void *opaque, int ret)
     if (req->qsg.nalloc) {
         qemu_sglist_destroy(&req->qsg);
     }
+    if (req->iov.nalloc) {
+        qemu_iovec_destroy(&req->iov);
+    }
+
     nvme_enqueue_req_completion(cq, req);
 }