From: Chris Wilson Date: Thu, 23 Jan 2020 12:59:34 +0000 (+0000) Subject: drm/i915/gem: Detect overflow in calculating dumb buffer size X-Git-Tag: libata-5.7-2020-04-09~30^2~19^2~316 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=0f8f8a64300092852b9361cd835395ee71e6a7d6;p=linux-block.git drm/i915/gem: Detect overflow in calculating dumb buffer size To multiply 2 u32 numbers to generate a u64 in C requires a bit of forewarning for the compiler. Signed-off-by: Chris Wilson Cc: Ramalingam C Cc: Joonas Lahtinen Cc: stable@vger.kernel.org Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20200123125934.1401755-1-chris@chris-wilson.co.uk --- diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 0a20083321a3..ff79da5657f8 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -265,7 +265,10 @@ i915_gem_dumb_create(struct drm_file *file, DRM_FORMAT_MOD_LINEAR)) args->pitch = ALIGN(args->pitch, 4096); - args->size = args->pitch * args->height; + if (args->pitch < args->width) + return -EINVAL; + + args->size = mul_u32_u32(args->pitch, args->height); mem_type = INTEL_MEMORY_SYSTEM; if (HAS_LMEM(to_i915(dev)))