diff options
Diffstat (limited to 'drivers/gpu/drm/drm_crtc.c')
| -rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index fa2be249999c..90e773019eac 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -4696,8 +4696,9 @@ int drm_mode_create_dumb_ioctl(struct drm_device *dev,  		return -EINVAL;  	/* overflow checks for 32bit size calculations */ +	/* NOTE: DIV_ROUND_UP() can overflow */  	cpp = DIV_ROUND_UP(args->bpp, 8); -	if (cpp > 0xffffffffU / args->width) +	if (!cpp || cpp > 0xffffffffU / args->width)  		return -EINVAL;  	stride = cpp * args->width;  	if (args->height > 0xffffffffU / stride)  |