From: Xiaohui Zhang Date: Tue, 7 Jun 2022 15:36:31 +0000 (+0800) Subject: drm/radeon: integer overflow in radeon_mode_dumb_create() X-Git-Tag: v6.0-rc1~27^2~17^2~179 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=feb54650bae25f2a2adfc493e3e254e7c27a3fba;p=tomoyo%2Ftomoyo-test1.git drm/radeon: integer overflow in radeon_mode_dumb_create() Similar to the handling of amdgpu_mode_dumb_create in commit 54ef0b5461c0 ("drm/amdgpu: integer overflow in amdgpu_mode_dumb_create()"), we thought a patch might be needed here as well. args->size is a u64. arg->pitch and args->height are u32. The multiplication will overflow instead of using the high 32 bits as intended. Signed-off-by: Xiaohui Zhang Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c index 8c01a7f0e027..84843b3b3aef 100644 --- a/drivers/gpu/drm/radeon/radeon_gem.c +++ b/drivers/gpu/drm/radeon/radeon_gem.c @@ -833,7 +833,7 @@ int radeon_mode_dumb_create(struct drm_file *file_priv, args->pitch = radeon_align_pitch(rdev, args->width, DIV_ROUND_UP(args->bpp, 8), 0); - args->size = args->pitch * args->height; + args->size = (u64)args->pitch * args->height; args->size = ALIGN(args->size, PAGE_SIZE); r = radeon_gem_object_create(rdev, args->size, 0,