mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-04-22 14:23:58 +00:00
tty: Clean console safely
Traditional \E[2J sequence erases console display but scroll-back buffer and underlying device (frame) buffer keep data that can be accessed by scrolling console back. This patch introduce new \E[J parameter 3 that allows to scramble scroll-back buffer explicitly. Session locking programs (screen, vlock) can use it to prevent attacker to browse locked console history. Signed-off-by: Petr Písař <ppisar@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
d942060288
commit
f8df13e0a9
1 changed files with 7 additions and 0 deletions
|
@ -1193,6 +1193,13 @@ static void csi_J(struct vc_data *vc, int vpar)
|
||||||
vc->vc_x + 1);
|
vc->vc_x + 1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 3: /* erase scroll-back buffer (and whole display) */
|
||||||
|
scr_memsetw(vc->vc_screenbuf, vc->vc_video_erase_char,
|
||||||
|
vc->vc_screenbuf_size >> 1);
|
||||||
|
set_origin(vc);
|
||||||
|
if (CON_IS_VISIBLE(vc))
|
||||||
|
update_screen(vc);
|
||||||
|
/* fall through */
|
||||||
case 2: /* erase whole display */
|
case 2: /* erase whole display */
|
||||||
count = vc->vc_cols * vc->vc_rows;
|
count = vc->vc_cols * vc->vc_rows;
|
||||||
start = (unsigned short *)vc->vc_origin;
|
start = (unsigned short *)vc->vc_origin;
|
||||||
|
|
Loading…
Add table
Reference in a new issue