From: Gerd Hoffmann Date: Tue, 15 Sep 2015 07:23:14 +0000 (+0200) Subject: virtio-gpu: move iov free to virtio_gpu_cleanup_mapping_iov X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=7f3be0f20ff8d976ab982cc06026cac0600f1fb6;p=osstest%2Fqemu.git virtio-gpu: move iov free to virtio_gpu_cleanup_mapping_iov For symmetry reasons: virtio_gpu_create_mapping_iov() allocates it so virtio_gpu_cleanup_mapping_iov() should free it, otherwise it's easy to miss a free() needed and leak memory. Signed-off-by: Gerd Hoffmann Reviewed-by: Max Reitz --- diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index a67d927f5..73bd9b6e4 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -563,7 +563,6 @@ int virtio_gpu_create_mapping_iov(struct virtio_gpu_resource_attach_backing *ab, __func__, ab->resource_id, i); virtio_gpu_cleanup_mapping_iov(*iov, i); g_free(ents); - g_free(*iov); *iov = NULL; return -1; } @@ -580,12 +579,12 @@ void virtio_gpu_cleanup_mapping_iov(struct iovec *iov, uint32_t count) cpu_physical_memory_unmap(iov[i].iov_base, iov[i].iov_len, 1, iov[i].iov_len); } + g_free(iov); } static void virtio_gpu_cleanup_mapping(struct virtio_gpu_simple_resource *res) { virtio_gpu_cleanup_mapping_iov(res->iov, res->iov_cnt); - g_free(res->iov); res->iov = NULL; res->iov_cnt = 0; }