[U-Boot] [PATCH 1/1] dm: video: check bounds for column and row

Alexander Graf agraf at suse.de
Sun Sep 23 11:35:16 UTC 2018



On 19.09.18 19:15, Heinrich Schuchardt wrote:
> CSI H can be used to position the cursor. The calling application may
> specify a location that is beyond the limits of the screen. This may
> lead to an illegal memory access.
> 
> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>

Reviewed-by: Alexander Graf <agraf at suse.de>

I'll be happy to take this in via efi-next if nobody beats me to it, as
it fixes a test failure we're not triggering otherwise.


Alex

> ---
>  drivers/video/vidconsole-uclass.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
> index f1d3ad3611..0c36a5de0a 100644
> --- a/drivers/video/vidconsole-uclass.c
> +++ b/drivers/video/vidconsole-uclass.c
> @@ -213,6 +213,14 @@ static void vidconsole_escape_char(struct udevice *dev, char ch)
>  		s++;    /* ; */
>  		s = parsenum(s, &col);
>  
> +		/*
> +		 * Ensure we stay in the bounds of the screen.
> +		 */
> +		if (row >= priv->rows)
> +			row = priv->rows - 1;
> +		if (col >= priv->cols)
> +			col = priv->cols - 1;
> +
>  		priv->ycur = row * priv->y_charsize;
>  		priv->xcur_frac = priv->xstart_frac +
>  			VID_TO_POS(col * priv->x_charsize);
> 


More information about the U-Boot mailing list