Commit 377f8331 authored by xndcn's avatar xndcn Committed by Gerd Hoffmann

drm/virtio: fix possible leak/unlock virtio_gpu_object_array

virtio_gpu_object array is not freed or unlocked in some
failed cases.
Signed-off-by: default avatarxndcn <xndchn@gmail.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20210305151819.14330-1-xndchn@gmail.comSigned-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent edf20859
...@@ -174,7 +174,7 @@ static int virtio_gpu_execbuffer_ioctl(struct drm_device *dev, void *data, ...@@ -174,7 +174,7 @@ static int virtio_gpu_execbuffer_ioctl(struct drm_device *dev, void *data,
if (!sync_file) { if (!sync_file) {
dma_fence_put(&out_fence->f); dma_fence_put(&out_fence->f);
ret = -ENOMEM; ret = -ENOMEM;
goto out_memdup; goto out_unresv;
} }
exbuf->fence_fd = out_fence_fd; exbuf->fence_fd = out_fence_fd;
......
...@@ -248,6 +248,7 @@ int virtio_gpu_object_create(struct virtio_gpu_device *vgdev, ...@@ -248,6 +248,7 @@ int virtio_gpu_object_create(struct virtio_gpu_device *vgdev,
ret = virtio_gpu_object_shmem_init(vgdev, bo, &ents, &nents); ret = virtio_gpu_object_shmem_init(vgdev, bo, &ents, &nents);
if (ret != 0) { if (ret != 0) {
virtio_gpu_array_put_free(objs);
virtio_gpu_free_object(&shmem_obj->base); virtio_gpu_free_object(&shmem_obj->base);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment