lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <nycvar.YSQ.7.76.1810231139460.1498@knanqh.ubzr>
Date:   Tue, 23 Oct 2018 11:47:14 -0400 (EDT)
From:   Nicolas Pitre <nicolas.pitre@...aro.org>
To:     Mikulas Patocka <mpatocka@...hat.com>
cc:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Dave Mielke <Dave@...lke.cc>,
        Adam Borowski <kilobyte@...band.pl>,
        Jiri Slaby <jslaby@...e.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] vt: fix broken display when running aptitude

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@...hat.com>
> Fixes: d8ae72427187 ("vt: preserve unicode values corresponding to screen characters")
> Cc: stable@...r.kernel.org	# 4.19

Good catch.

Reviewed-by: Nicolas Pitre <nico@...aro.org>

> ---
>  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 */
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ