Patch "drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()" has been added to the 3.18-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()
to the 3.18-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-vmwgfx-limit-the-number-of-mip-levels-in-vmw_gb_surface_define_ioctl.patch
and it can be found in the queue-3.18 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
ee9c4e681ec4f58e42a83cb0c22a0289ade1aacfMon Sep 17 00:00:00 2001
From: Vladis Dronov <[email protected]>
Date: Fri, 2 Jun 2017 07:42:09 +0200
Subject: drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()
From: Vladis Dronov <[email protected]>
commit ee9c4e681ec4f58e42a83cb0c22a0289ade1aacf upstream.
The 'req->mip_levels' parameter in vmw_gb_surface_define_ioctl() is a user-controlled 'uint32_t' value which is used as a loop count limit. This can lead to a kernel lockup and DoS. Add check for 'req->mip_levels'.
References:
https://bugzilla.redhat.com/show_bug.cgi?id=1437431
--- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c +3 -0
@@ -1243,6 +1243,9 @@ int vmw_gb_surface_define_ioctl(struct dconst struct svga3d_surface_desc *desc;uint32_t backup_handle; +if (req->mip_levels >DRM_VMW_MAX_MIP_LEVELS ) +return -EINVAL ; +if (unlikely (vmw_user_surface_size ==0 )) vmw_user_surface_size =ttm_round_pot (sizeof (*user_srf)) +128 ;
Patches currently in stable-queue which might be from [email protected] are
queue-3.18/drm-vmwgfx-limit-the-number-of-mip-levels-in-vmw_gb_surface_define_ioctl.patch