]> git.baikalelectronics.ru Git - kernel.git/commit
drm/vmwgfx: Fix stale file descriptors on failed usercopy
authorMathias Krause <minipli@grsecurity.net>
Thu, 27 Jan 2022 08:34:19 +0000 (18:34 +1000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 27 Jan 2022 15:55:20 +0000 (17:55 +0200)
commite7fefb60b725cebf84692333f93f001d59503494
tree4a6833bd11235602d4c8986c77bfa35936b98fd3
parentc332ec03e2f4461ad0b902aed1c9ce371f16046f
drm/vmwgfx: Fix stale file descriptors on failed usercopy

A failing usercopy of the fence_rep object will lead to a stale entry in
the file descriptor table as put_unused_fd() won't release it. This
enables userland to refer to a dangling 'file' object through that still
valid file descriptor, leading to all kinds of use-after-free
exploitation scenarios.

Fix this by deferring the call to fd_install() until after the usercopy
has succeeded.

Fixes: cea376c7ac66 ("drm/vmwgfx: Add export fence to file descriptor support")
Signed-off-by: Mathias Krause <minipli@grsecurity.net>
Signed-off-by: Zack Rusin <zackr@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c