]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/shmem-helper: Remove errant put in error path
authorRob Clark <robdclark@chromium.org>
Wed, 30 Nov 2022 18:57:47 +0000 (10:57 -0800)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 14 Dec 2022 13:02:54 +0000 (14:02 +0100)
commit 24013314be6ee4ee456114a671e9fa3461323de8 upstream.

drm_gem_shmem_mmap() doesn't own this reference, resulting in the GEM
object getting prematurely freed leading to a later use-after-free.

Link: https://syzkaller.appspot.com/bug?extid=c8ae65286134dd1b800d
Reported-by: syzbot+c8ae65286134dd1b800d@syzkaller.appspotmail.com
Fixes: 2194a63a818d ("drm: Add library for shmem backed GEM objects")
Cc: stable@vger.kernel.org
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221130185748.357410-2-robdclark@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 83e3da8bb92fcfa7a1d232cf55f9e6c49bb84942)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
drivers/gpu/drm/drm_gem_shmem_helper.c

index a30ffc07470cca6e828c0cd8b2a432b016c5201a..808d364a55446913ee6e21e8a6ffdd7e1acc6ac9 100644 (file)
@@ -591,10 +591,8 @@ int drm_gem_shmem_mmap(struct drm_gem_shmem_object *shmem, struct vm_area_struct
        }
 
        ret = drm_gem_shmem_get_pages(shmem);
-       if (ret) {
-               drm_gem_vm_close(vma);
+       if (ret)
                return ret;
-       }
 
        vma->vm_flags |= VM_MIXEDMAP | VM_DONTEXPAND;
        vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);