Skip to content

Commit b9aaad2

Browse files
committed
drm/vmwgfx: Do not allow invalid bpp's for dumb buffers
jira VULN-8161 cve CVE-2023-5633 commit-author Zack Rusin <zackr@vmware.com> commit 1c8d537 Dumb buffers allow a very limited set of formats. Basically everything apart from 1, 2 and 4 is expected to return an error. Make vmwgfx follow those guidelines. This fixes igt's dumb_buffer invalid_bpp test on vmwgfx. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: Martin Krastev <krastevm@vmware.com> Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com> Link: https://patchwork.freedesktop.org/patch/msgid/20221022040236.616490-13-zack@kde.org (cherry picked from commit 1c8d537) Signed-off-by: Sultan Alsawaf <sultan@ciq.com>
1 parent 55cfaa7 commit b9aaad2

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

drivers/gpu/drm/vmwgfx/vmwgfx_bo.c

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -809,9 +809,23 @@ int vmw_dumb_create(struct drm_file *file_priv,
809809
{
810810
struct vmw_private *dev_priv = vmw_priv(dev);
811811
struct vmw_buffer_object *vbo;
812+
int cpp = DIV_ROUND_UP(args->bpp, 8);
812813
int ret;
813814

814-
args->pitch = args->width * ((args->bpp + 7) / 8);
815+
switch (cpp) {
816+
case 1: /* DRM_FORMAT_C8 */
817+
case 2: /* DRM_FORMAT_RGB565 */
818+
case 4: /* DRM_FORMAT_XRGB8888 */
819+
break;
820+
default:
821+
/*
822+
* Dumb buffers don't allow anything else.
823+
* This is tested via IGT's dumb_buffers
824+
*/
825+
return -EINVAL;
826+
}
827+
828+
args->pitch = args->width * cpp;
815829
args->size = ALIGN(args->pitch * args->height, PAGE_SIZE);
816830

817831
ret = vmw_gem_object_create_with_handle(dev_priv, file_priv,

0 commit comments

Comments
 (0)