[PATCH] drm: Shift wrap bug in create_in_format_blob()

Sean Paul seanpaul at chromium.org
Wed Aug 9 14:36:50 UTC 2017


On Wed, Aug 09, 2017 at 02:19:06PM +0300, Dan Carpenter wrote:
> "plane->format_count" can go up to 64.  (It's capped in
> drm_universal_plane_init().)  So we should be using ULL type instead of
> int here to prevent shift wrapping.
> 
> Fixes: db1689aa61bd ("drm: Create a format/modifier blob")
> Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>

Thank you for the fix, Dan.

I've applied it to drm-misc-next.

Sean

> 
> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> index 5c14beee52ff..85ab1eec73e5 100644
> --- a/drivers/gpu/drm/drm_plane.c
> +++ b/drivers/gpu/drm/drm_plane.c
> @@ -126,7 +126,7 @@ static int create_in_format_blob(struct drm_device *dev, struct drm_plane *plane
>  							       plane->format_types[j],
>  							       plane->modifiers[i])) {
>  
> -				mod->formats |= 1 << j;
> +				mod->formats |= 1ULL << j;
>  			}
>  		}
>  

-- 
Sean Paul, Software Engineer, Google / Chromium OS


More information about the dri-devel mailing list