Re: [PATCH] vt: fix broken display when running aptitude

From: Nicolas Pitre
Date: Tue Oct 23 2018 - 11:47:19 EST


On Tue, 23 Oct 2018, Mikulas Patocka wrote:

> If you run aptitude on framebuffer console, the display is corrupted. The
> corruption is caused by the commit d8ae7242. The patch adds "offset" to
> "start" when calling scr_memsetw, but it forgets to do the same addition
> on a subsequent call to do_update_region.
>
> Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx>
> Fixes: d8ae72427187 ("vt: preserve unicode values corresponding to screen characters")
> Cc: stable@xxxxxxxxxxxxxxx # 4.19

Good catch.

Reviewed-by: Nicolas Pitre <nico@xxxxxxxxxx>

> ---
> drivers/tty/vt/vt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6/drivers/tty/vt/vt.c
> ===================================================================
> --- linux-2.6.orig/drivers/tty/vt/vt.c 2018-10-23 16:15:08.000000000 +0200
> +++ linux-2.6/drivers/tty/vt/vt.c 2018-10-23 16:29:20.000000000 +0200
> @@ -1551,7 +1551,7 @@ static void csi_K(struct vc_data *vc, in
> scr_memsetw(start + offset, vc->vc_video_erase_char, 2 * count);
> vc->vc_need_wrap = 0;
> if (con_should_update(vc))
> - do_update_region(vc, (unsigned long) start, count);
> + do_update_region(vc, (unsigned long)(start + offset), count);
> }
>
> static void csi_X(struct vc_data *vc, int vpar) /* erase the following vpar positions */
>