Commit f8df13e0 authored by Petr Písař's avatar Petr Písař Committed by Greg Kroah-Hartman
Browse files

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: default avatarPetr Písař <ppisar@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent d9420602
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1193,6 +1193,13 @@ static void csi_J(struct vc_data *vc, int vpar)
					      vc->vc_x + 1);
			}
			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 */
			count = vc->vc_cols * vc->vc_rows;
			start = (unsigned short *)vc->vc_origin;