qemu: avoid memory leak while remove disk
commita5390d936714482ac5996e1635a6ffd9c3c133df
authorJian Wang <wangjian161@huawei.com>
Sat, 22 Dec 2018 10:27:28 +0000 (22 18:27 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 15 Jan 2019 00:31:04 +0000 (14 19:31 -0500)
tree7787614c302406064a9c79e20095bdaaf51e1ff3
parent5a0e75f0a9ad063ebaa7eb19b82104f00acb80a0
qemu: avoid memory leak while remove disk

Memset vhost_dev to zero in the vhost_dev_cleanup function.
This causes dev.vqs to be NULL, so that
vqs does not free up space when calling the g_free function.
This will result in a memory leak. But you can't release vqs
directly in the vhost_dev_cleanup function, because vhost_net
will also call this function, and vhost_net's vqs is assigned by array.
In order to solve this problem, we first save the pointer of vqs,
and release the space of vqs after vhost_dev_cleanup is called.

Signed-off-by: Jian Wang <wangjian161@huawei.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/block/vhost-user-blk.c
hw/scsi/vhost-scsi.c
hw/scsi/vhost-user-scsi.c