[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 2/6] virtio-gpu: fix resource leak in virgl_cmd_resou
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL 2/6] virtio-gpu: fix resource leak in virgl_cmd_resource_unref |
Date: |
Mon, 13 Feb 2017 09:17:27 +0100 |
When the guest sends VIRTIO_GPU_CMD_RESOURCE_UNREF without detaching the
backing storage beforehand (VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING)
we'll leak memory.
This patch fixes it for 3d mode, simliar to the 2d mode fix in commit
"b8e2392 virtio-gpu: call cleanup mapping function in resource destroy".
Reported-by: 李强 <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden
---
hw/display/virtio-gpu-3d.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hw/display/virtio-gpu-3d.c b/hw/display/virtio-gpu-3d.c
index f96a0c2..ecb09d1 100644
--- a/hw/display/virtio-gpu-3d.c
+++ b/hw/display/virtio-gpu-3d.c
@@ -77,10 +77,18 @@ static void virgl_cmd_resource_unref(VirtIOGPU *g,
struct virtio_gpu_ctrl_command *cmd)
{
struct virtio_gpu_resource_unref unref;
+ struct iovec *res_iovs = NULL;
+ int num_iovs = 0;
VIRTIO_GPU_FILL_CMD(unref);
trace_virtio_gpu_cmd_res_unref(unref.resource_id);
+ virgl_renderer_resource_detach_iov(unref.resource_id,
+ &res_iovs,
+ &num_iovs);
+ if (res_iovs != NULL && num_iovs != 0) {
+ virtio_gpu_cleanup_mapping_iov(res_iovs, num_iovs);
+ }
virgl_renderer_resource_unref(unref.resource_id);
}
--
1.8.3.1
- [Qemu-devel] [PULL 0/6] vga patch queue, Gerd Hoffmann, 2017/02/13
- [Qemu-devel] [PULL 5/6] cirrus: fix patterncopy checks, Gerd Hoffmann, 2017/02/13
- [Qemu-devel] [PULL 1/6] virtio-gpu: fix memory leak in set scanout, Gerd Hoffmann, 2017/02/13
- [Qemu-devel] [PULL 3/6] vga: replace debug printf with trace points, Gerd Hoffmann, 2017/02/13
- [Qemu-devel] [PULL 2/6] virtio-gpu: fix resource leak in virgl_cmd_resource_unref,
Gerd Hoffmann <=
- [Qemu-devel] [PULL 6/6] Revert "cirrus: allow zero source pitch in pattern fill rops", Gerd Hoffmann, 2017/02/13
- [Qemu-devel] [PULL 4/6] cirrus: replace debug printf with trace points, Gerd Hoffmann, 2017/02/13
- Re: [Qemu-devel] [PULL 0/6] vga patch queue, Peter Maydell, 2017/02/13