2020-07-22 05:24:13

by 何鑫

[permalink] [raw]
Subject: [PATCH] drm/virtio: fix memory leak in virtio_gpu_cleanup_object()

Before setting shmem->pages to NULL, kfree() should
be called.

Signed-off-by: Xin He <[email protected]>
Reviewed-by: Qi Liu <[email protected]>
---
drivers/gpu/drm/virtio/virtgpu_object.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/virtio/virtgpu_object.c b/drivers/gpu/drm/virtio/virtgpu_object.c
index 6ccbd01cd888..703b5cd51751 100644
--- a/drivers/gpu/drm/virtio/virtgpu_object.c
+++ b/drivers/gpu/drm/virtio/virtgpu_object.c
@@ -79,6 +79,7 @@ void virtio_gpu_cleanup_object(struct virtio_gpu_object *bo)
}

sg_free_table(shmem->pages);
+ kfree(shmem->pages);
shmem->pages = NULL;
drm_gem_shmem_unpin(&bo->base.base);
}
--
2.21.1 (Apple Git-122.3)


2020-08-05 13:05:25

by 何鑫

[permalink] [raw]
Subject: Re: [PATCH] drm/virtio: fix memory leak in virtio_gpu_cleanup_object()

Xin He <[email protected]> 于2020年7月22日周三 下午1:19写道:
>
> Before setting shmem->pages to NULL, kfree() should
> be called.
>
> Signed-off-by: Xin He <[email protected]>
> Reviewed-by: Qi Liu <[email protected]>
> ---
> drivers/gpu/drm/virtio/virtgpu_object.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/virtio/virtgpu_object.c b/drivers/gpu/drm/virtio/virtgpu_object.c
> index 6ccbd01cd888..703b5cd51751 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_object.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_object.c
> @@ -79,6 +79,7 @@ void virtio_gpu_cleanup_object(struct virtio_gpu_object *bo)
> }
>
> sg_free_table(shmem->pages);
> + kfree(shmem->pages);
> shmem->pages = NULL;
> drm_gem_shmem_unpin(&bo->base.base);
> }
> --
> 2.21.1 (Apple Git-122.3)
>

Ping guys. Any comments or suggestions?

--
Xin He

2020-08-07 12:46:50

by Gerd Hoffmann

[permalink] [raw]
Subject: Re: [PATCH] drm/virtio: fix memory leak in virtio_gpu_cleanup_object()

On Wed, Jul 22, 2020 at 01:18:51PM +0800, Xin He wrote:
> Before setting shmem->pages to NULL, kfree() should
> be called.

> sg_free_table(shmem->pages);
> + kfree(shmem->pages);
> shmem->pages = NULL;

Pushed to drm-misc-fixes.

thanks,
Gerd