All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Petr Písař" <ppisar@redhat.com>
To: Greg Kroah-Hartman <gregkh@suse.de>
Cc: "Alan Cox" <alan@lxorguk.ukuu.org.uk>,
	linux-kernel@vger.kernel.org,
	"Artem Bityutskiy" <dedekind1@gmail.com>,
	"Chris Ball" <cjb@laptop.org>,
	"Daniel Taylor" <Daniel.Taylor@wdc.com>,
	"Petr Písař" <ppisar@redhat.com>
Subject: [PATCH] Clean console safely
Date: Fri, 15 Apr 2011 10:08:08 +0200	[thread overview]
Message-ID: <1302854888-3606-1-git-send-email-ppisar@redhat.com> (raw)
In-Reply-To: <25B374CC0D9DFB4698BB331F82CD0CF2E3EC04@wdscexbe08.sc.wdc.com>

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>
---
 drivers/tty/vt/vt.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 4bea1ef..cb661ca 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -1197,6 +1197,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;
-- 
1.7.4.4


  reply	other threads:[~2011-04-15  8:09 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-13 14:32 Clean console safely Petr Písař
2011-04-13 14:32 ` [PATCH] " Petr Písař
2011-04-13 14:40   ` Artem Bityutskiy
2011-04-13 14:54     ` Petr Písař
2011-04-13 15:01       ` Greg KH
2011-04-13 15:33         ` Petr Pisar
2011-04-13 15:46           ` Greg KH
2011-04-13 15:18       ` Chris Ball
2011-04-13 15:28         ` Petr Pisar
2011-04-13 15:44           ` Chris Ball
2011-04-13 23:55             ` Daniel Taylor
2011-04-15  8:08               ` Petr Písař [this message]
2016-07-21 12:53                 ` Jiri Slaby
2011-04-13 15:32         ` Alexander Stein
2011-04-13 14:55 ` Greg KH
  -- strict thread matches above, loose matches on Subject: below --
2011-03-24  9:56 [PATCH] " Petr Písař
2011-03-24 10:24 ` Alan Cox
2011-03-24 14:15   ` Petr Pisar
2011-03-24 14:51     ` Alan Cox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1302854888-3606-1-git-send-email-ppisar@redhat.com \
    --to=ppisar@redhat.com \
    --cc=Daniel.Taylor@wdc.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=cjb@laptop.org \
    --cc=dedekind1@gmail.com \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.