43dff1a356
commit a37ef7613c00f2d72c8fc08bd83fb6cc76926c8c upstream. Correctly set the length of the drm_event to the size of the structure that's actually used. The length of the drm_event was set to the parent structure instead of to the drm_vmw_event_fence which is supposed to be read. drm_read uses the length parameter to copy the event to the user space thus resuling in oob reads. Signed-off-by: Zack Rusin <zack.rusin@broadcom.com> Fixes: 8b7de6aa8468 ("vmwgfx: Rework fence event action") Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-23566 Cc: David Airlie <airlied@gmail.com> CC: Daniel Vetter <daniel@ffwll.ch> Cc: Zack Rusin <zack.rusin@broadcom.com> Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com> Cc: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org Cc: <stable@vger.kernel.org> # v3.4+ Reviewed-by: Maaz Mombasawala <maaz.mombasawala@broadcom.com> Reviewed-by: Martin Krastev <martin.krastev@broadcom.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240425192748.1761522-1-zack.rusin@broadcom.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
---|---|---|
.. | ||
device_include | ||
Kconfig | ||
Makefile | ||
ttm_lock.c | ||
ttm_lock.h | ||
ttm_object.c | ||
ttm_object.h | ||
vmwgfx_binding.c | ||
vmwgfx_binding.h | ||
vmwgfx_blit.c | ||
vmwgfx_bo.c | ||
vmwgfx_cmdbuf.c | ||
vmwgfx_cmdbuf_res.c | ||
vmwgfx_context.c | ||
vmwgfx_cotable.c | ||
vmwgfx_drv.c | ||
vmwgfx_drv.h | ||
vmwgfx_execbuf.c | ||
vmwgfx_fb.c | ||
vmwgfx_fence.c | ||
vmwgfx_fence.h | ||
vmwgfx_fifo.c | ||
vmwgfx_gmr.c | ||
vmwgfx_gmrid_manager.c | ||
vmwgfx_ioctl.c | ||
vmwgfx_irq.c | ||
vmwgfx_kms.c | ||
vmwgfx_kms.h | ||
vmwgfx_ldu.c | ||
vmwgfx_marker.c | ||
vmwgfx_mob.c | ||
vmwgfx_msg.c | ||
vmwgfx_msg.h | ||
vmwgfx_overlay.c | ||
vmwgfx_page_dirty.c | ||
vmwgfx_prime.c | ||
vmwgfx_reg.h | ||
vmwgfx_resource.c | ||
vmwgfx_resource_priv.h | ||
vmwgfx_scrn.c | ||
vmwgfx_shader.c | ||
vmwgfx_simple_resource.c | ||
vmwgfx_so.c | ||
vmwgfx_so.h | ||
vmwgfx_stdu.c | ||
vmwgfx_streamoutput.c | ||
vmwgfx_surface.c | ||
vmwgfx_thp.c | ||
vmwgfx_ttm_buffer.c | ||
vmwgfx_ttm_glue.c | ||
vmwgfx_va.c | ||
vmwgfx_validation.c | ||
vmwgfx_validation.h |