mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-28 23:24:50 +00:00
drm/vmwgfx: fix potential UAF in vmwgfx_surface.c
drm_file.master should be protected by either drm_device.master_mutex or drm_file.master_lookup_lock when being dereferenced. However, drm_master_get is called on unprotected file_priv->master pointers in vmw_surface_define_ioctl and vmw_gb_surface_define_internal. This is fixed by replacing drm_master_get with drm_file_get_master. Signed-off-by: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Zack Rusin <zackr@vmware.com> Signed-off-by: Zack Rusin <zackr@vmware.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210724111824.59266-4-desmondcheongzx@gmail.com
This commit is contained in:
parent
1cb48cf3b1
commit
2bc5da528d
1 changed files with 2 additions and 2 deletions
|
@ -865,7 +865,7 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data,
|
|||
user_srf->prime.base.shareable = false;
|
||||
user_srf->prime.base.tfile = NULL;
|
||||
if (drm_is_primary_client(file_priv))
|
||||
user_srf->master = drm_master_get(file_priv->master);
|
||||
user_srf->master = drm_file_get_master(file_priv);
|
||||
|
||||
/**
|
||||
* From this point, the generic resource management functions
|
||||
|
@ -1534,7 +1534,7 @@ vmw_gb_surface_define_internal(struct drm_device *dev,
|
|||
|
||||
user_srf = container_of(srf, struct vmw_user_surface, srf);
|
||||
if (drm_is_primary_client(file_priv))
|
||||
user_srf->master = drm_master_get(file_priv->master);
|
||||
user_srf->master = drm_file_get_master(file_priv);
|
||||
|
||||
res = &user_srf->srf.res;
|
||||
|
||||
|
|
Loading…
Reference in a new issue