linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Clean console safely
@ 2011-03-24  9:56 Petr Písař
  2011-03-24 10:24 ` Alan Cox
  0 siblings, 1 reply; 17+ messages in thread
From: Petr Písař @ 2011-03-24  9:56 UTC (permalink / raw)
  To: linux-kernel; +Cc: Petr Písař

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

diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 147ede3..c31bf2a 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -1198,6 +1198,12 @@ 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);
 		case 2: /* erase whole display */
 			count = vc->vc_cols * vc->vc_rows;
 			start = (unsigned short *)vc->vc_origin;
-- 
1.7.4


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  2011-03-24  9:56 [PATCH] Clean console safely Petr Písař
@ 2011-03-24 10:24 ` Alan Cox
  2011-03-24 14:15   ` Petr Pisar
  0 siblings, 1 reply; 17+ messages in thread
From: Alan Cox @ 2011-03-24 10:24 UTC (permalink / raw)
  To: Petr Písař; +Cc: linux-kernel

On Thu, 24 Mar 2011 10:56:51 +0100
Petr Písař <ppisar@redhat.com> wrote:

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

Looks sensible enough

There are a set of official codes that are probably more relevant, and
also deal with the timing of events

See DECSR/DECSRC on a later VT terminal, also DECSTR which 

DECSR = secure reset, return to power up state, \E[n+p where n is an
optional value from 1-16383 which if provided is replied back from the tty
as a DECSRC response (hence 'secure'). It's defined to clear off
screen memory, and also other weirdness a user may have set up so could
reasonably also be extended a bit if there is other stuff founbd in
future that such a reset really ought to clean up - eg for mingetty.

http://www.vt100.net/docs/vt520-rm/ek-vt520-rm.pdf (page 299)

ED 3J looks fine but is a new "made up" extension.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  2011-03-24 10:24 ` Alan Cox
@ 2011-03-24 14:15   ` Petr Pisar
  2011-03-24 14:51     ` Alan Cox
  0 siblings, 1 reply; 17+ messages in thread
From: Petr Pisar @ 2011-03-24 14:15 UTC (permalink / raw)
  To: Alan Cox; +Cc: linux-kernel

On Thu, Mar 24, 2011 at 10:24:31AM +0000, Alan Cox wrote:
> On Thu, 24 Mar 2011 10:56:51 +0100
> Petr Písař <ppisar@redhat.com> wrote:
> 
> > 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.
> > ---
> >  drivers/tty/vt/vt.c |    6 ++++++
> >  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> Looks sensible enough
> 
> There are a set of official codes that are probably more relevant, and
> also deal with the timing of events
> 
> See DECSR/DECSRC on a later VT terminal, also DECSTR which 
> 
> DECSR = secure reset, return to power up state, \E[n+p where n is an
> optional value from 1-16383 which if provided is replied back from the tty
> as a DECSRC response (hence 'secure'). It's defined to clear off
> screen memory, and also other weirdness a user may have set up so could
> reasonably also be extended a bit if there is other stuff founbd in
> future that such a reset really ought to clean up - eg for mingetty.
> 
> http://www.vt100.net/docs/vt520-rm/ek-vt520-rm.pdf (page 299)
> 
> ED 3J looks fine but is a new "made up" extension.
> 
The problem with DECSRC as well as DECSTR or RIS is they reset terminal font,
keyboard layout, unicode mode and other configuration. That's the reason why
I rejected enhancing RIS implemented in Linux VT already. In other words,
I'm searching for a clear display feature which preserves configuration.
I read console_codes(4), console_ioctl(4), and now the VT520 documentation and
I did not find any existing control code. The most close seems ED J for me.

-- Petr

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  2011-03-24 14:15   ` Petr Pisar
@ 2011-03-24 14:51     ` Alan Cox
  0 siblings, 0 replies; 17+ messages in thread
From: Alan Cox @ 2011-03-24 14:51 UTC (permalink / raw)
  To: Petr Pisar; +Cc: linux-kernel

> I'm searching for a clear display feature which preserves configuration.
> I read console_codes(4), console_ioctl(4), and now the VT520 documentation and
> I did not find any existing control code. The most close seems ED J for me.

Seems reasonable to me on that basis.


> 
> -- Petr


-- 
--
	"Alan, I'm getting a bit worried about you."
				-- Linus Torvalds

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] Clean console safely
  2011-04-13 14:32 Petr Písař
@ 2011-04-13 14:32 ` Petr Písař
  2011-04-13 14:40   ` Artem Bityutskiy
  0 siblings, 1 reply; 17+ messages in thread
From: Petr Písař @ 2011-04-13 14:32 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: Alan Cox, linux-kernel, Petr Písař

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

diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 4bea1ef..fe96a1f 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -1197,6 +1197,12 @@ 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);
 		case 2: /* erase whole display */
 			count = vc->vc_cols * vc->vc_rows;
 			start = (unsigned short *)vc->vc_origin;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  2011-04-13 14:32 ` [PATCH] " Petr Písař
@ 2011-04-13 14:40   ` Artem Bityutskiy
  2011-04-13 14:54     ` Petr Písař
  0 siblings, 1 reply; 17+ messages in thread
From: Artem Bityutskiy @ 2011-04-13 14:40 UTC (permalink / raw)
  To: Petr Písař; +Cc: Greg Kroah-Hartman, Alan Cox, linux-kernel

On Wed, 2011-04-13 at 16:32 +0200, Petr Písař wrote:
> 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.
> ---
>  drivers/tty/vt/vt.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)

You forgot to "Signed-off-by:" it.

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] Clean console safely
  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:18       ` Chris Ball
  0 siblings, 2 replies; 17+ messages in thread
From: Petr Písař @ 2011-04-13 14:54 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Alan Cox, linux-kernel, Artem Bityutskiy, Petr Písař

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 |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 4bea1ef..fe96a1f 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -1197,6 +1197,12 @@ 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);
 		case 2: /* erase whole display */
 			count = vc->vc_cols * vc->vc_rows;
 			start = (unsigned short *)vc->vc_origin;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  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:18       ` Chris Ball
  1 sibling, 1 reply; 17+ messages in thread
From: Greg KH @ 2011-04-13 15:01 UTC (permalink / raw)
  To: Petr Písař; +Cc: Alan Cox, linux-kernel, Artem Bityutskiy

On Wed, Apr 13, 2011 at 04:54:33PM +0200, Petr Písař wrote:
> 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.

Is this also documented somewhere so that people know about it?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  2011-04-13 14:54     ` Petr Písař
  2011-04-13 15:01       ` Greg KH
@ 2011-04-13 15:18       ` Chris Ball
  2011-04-13 15:28         ` Petr Pisar
  2011-04-13 15:32         ` Alexander Stein
  1 sibling, 2 replies; 17+ messages in thread
From: Chris Ball @ 2011-04-13 15:18 UTC (permalink / raw)
  To: Petr Písař
  Cc: Greg Kroah-Hartman, Alan Cox, linux-kernel, Artem Bityutskiy

Hi,

On Wed, Apr 13 2011, Petr Písař wrote:
> 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 |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
> index 4bea1ef..fe96a1f 100644
> --- a/drivers/tty/vt/vt.c
> +++ b/drivers/tty/vt/vt.c
> @@ -1197,6 +1197,12 @@ 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);
>  		case 2: /* erase whole display */
>  			count = vc->vc_cols * vc->vc_rows;
>  			start = (unsigned short *)vc->vc_origin;

Nitpick: the cases were ordered before -- 3 should go after 2.

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  2011-04-13 15:18       ` Chris Ball
@ 2011-04-13 15:28         ` Petr Pisar
  2011-04-13 15:44           ` Chris Ball
  2011-04-13 15:32         ` Alexander Stein
  1 sibling, 1 reply; 17+ messages in thread
From: Petr Pisar @ 2011-04-13 15:28 UTC (permalink / raw)
  To: Chris Ball; +Cc: Greg Kroah-Hartman, Alan Cox, linux-kernel, Artem Bityutskiy

On Wed, Apr 13, 2011 at 11:18:04AM -0400, Chris Ball wrote:
> 
> On Wed, Apr 13 2011, Petr Písař wrote:
> > 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 |    6 ++++++
> >  1 files changed, 6 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
> > index 4bea1ef..fe96a1f 100644
> > --- a/drivers/tty/vt/vt.c
> > +++ b/drivers/tty/vt/vt.c
> > @@ -1197,6 +1197,12 @@ 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);
> >  		case 2: /* erase whole display */
> >  			count = vc->vc_cols * vc->vc_rows;
> >  			start = (unsigned short *)vc->vc_origin;
> 
> Nitpick: the cases were ordered before -- 3 should go after 2.
> 
This is on purpose to continue with code for case 2 as it prepares variables
for cleaning visible part of display after the switch block.

-- Petr

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  2011-04-13 15:18       ` Chris Ball
  2011-04-13 15:28         ` Petr Pisar
@ 2011-04-13 15:32         ` Alexander Stein
  1 sibling, 0 replies; 17+ messages in thread
From: Alexander Stein @ 2011-04-13 15:32 UTC (permalink / raw)
  To: Chris Ball
  Cc: Petr Písař, Greg Kroah-Hartman, Alan Cox, linux-kernel,
	Artem Bityutskiy

Hi,

On Wednesday 13 April 2011, 17:18:04 Chris Ball wrote:
> On Wed, Apr 13 2011, Petr Písař wrote:
> > 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 |    6 ++++++
> >  1 files changed, 6 insertions(+), 0 deletions(-)
> > 
> > diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
> > index 4bea1ef..fe96a1f 100644
> > --- a/drivers/tty/vt/vt.c
> > +++ b/drivers/tty/vt/vt.c
> > @@ -1197,6 +1197,12 @@ 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);
> > 
> >  		case 2: /* erase whole display */
> >  		
> >  			count = vc->vc_cols * vc->vc_rows;
> >  			start = (unsigned short *)vc->vc_origin;
> 
> Nitpick: the cases were ordered before -- 3 should go after 2.

Not if the fall-through is intended.

Alexander

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  2011-04-13 15:01       ` Greg KH
@ 2011-04-13 15:33         ` Petr Pisar
  2011-04-13 15:46           ` Greg KH
  0 siblings, 1 reply; 17+ messages in thread
From: Petr Pisar @ 2011-04-13 15:33 UTC (permalink / raw)
  To: Greg KH; +Cc: Alan Cox, linux-kernel, Artem Bityutskiy

On Wed, Apr 13, 2011 at 08:01:13AM -0700, Greg KH wrote:
> On Wed, Apr 13, 2011 at 04:54:33PM +0200, Petr Písař wrote:
> > 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.
> 
> Is this also documented somewhere so that people know about it?
> 
> 
Not yet as this is fresh feature. I'd like to put few words into
console_codes(4). I guess manual sources are not part of Linux.

-- Petr

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  2011-04-13 15:28         ` Petr Pisar
@ 2011-04-13 15:44           ` Chris Ball
  2011-04-13 23:55             ` Daniel Taylor
  0 siblings, 1 reply; 17+ messages in thread
From: Chris Ball @ 2011-04-13 15:44 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: Alan Cox, linux-kernel, Artem Bityutskiy

Hi,

On Wed, Apr 13 2011, Petr Pisar wrote:
> On Wed, Apr 13, 2011 at 11:18:04AM -0400, Chris Ball wrote:
>> 
>> On Wed, Apr 13 2011, Petr Písař wrote:
>> > 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 |    6 ++++++
>> >  1 files changed, 6 insertions(+), 0 deletions(-)
>> >
>> > diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
>> > index 4bea1ef..fe96a1f 100644
>> > --- a/drivers/tty/vt/vt.c
>> > +++ b/drivers/tty/vt/vt.c
>> > @@ -1197,6 +1197,12 @@ 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);
>> >  		case 2: /* erase whole display */
>> >  			count = vc->vc_cols * vc->vc_rows;
>> >  			start = (unsigned short *)vc->vc_origin;
>> 
>> Nitpick: the cases were ordered before -- 3 should go after 2.
>> 
> This is on purpose to continue with code for case 2 as it prepares variables
> for cleaning visible part of display after the switch block.

Oops, sorry; I saw an imaginary break statement there.

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  2011-04-13 15:33         ` Petr Pisar
@ 2011-04-13 15:46           ` Greg KH
  0 siblings, 0 replies; 17+ messages in thread
From: Greg KH @ 2011-04-13 15:46 UTC (permalink / raw)
  To: Alan Cox, linux-kernel, Artem Bityutskiy

On Wed, Apr 13, 2011 at 05:33:59PM +0200, Petr Pisar wrote:
> On Wed, Apr 13, 2011 at 08:01:13AM -0700, Greg KH wrote:
> > On Wed, Apr 13, 2011 at 04:54:33PM +0200, Petr Písař wrote:
> > > 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.
> > 
> > Is this also documented somewhere so that people know about it?
> > 
> > 
> Not yet as this is fresh feature. I'd like to put few words into
> console_codes(4). I guess manual sources are not part of Linux.

No they are not, they have their own maintainer and release schedule.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 17+ messages in thread

* RE: [PATCH] Clean console safely
  2011-04-13 15:44           ` Chris Ball
@ 2011-04-13 23:55             ` Daniel Taylor
  2011-04-15  8:08               ` Petr Písař
  0 siblings, 1 reply; 17+ messages in thread
From: Daniel Taylor @ 2011-04-13 23:55 UTC (permalink / raw)
  To: linux-kernel; +Cc: Alan Cox, Artem Bityutskiy, Chris Ball, Greg Kroah-Hartman

 

> -----Original Message-----
> From: linux-kernel-owner@vger.kernel.org 
> [mailto:linux-kernel-owner@vger.kernel.org] On Behalf Of Chris Ball
> Sent: Wednesday, April 13, 2011 8:45 AM
> To: Greg Kroah-Hartman
> Cc: Alan Cox; linux-kernel@vger.kernel.org; Artem Bityutskiy
> Subject: Re: [PATCH] Clean console safely
> 
> Hi,
> 
> On Wed, Apr 13 2011, Petr Pisar wrote:
> > On Wed, Apr 13, 2011 at 11:18:04AM -0400, Chris Ball wrote:
> >> 
> >> On Wed, Apr 13 2011, Petr Písař wrote:
> >> > 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 |    6 ++++++
> >> >  1 files changed, 6 insertions(+), 0 deletions(-)
> >> >
> >> > diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
> >> > index 4bea1ef..fe96a1f 100644
> >> > --- a/drivers/tty/vt/vt.c
> >> > +++ b/drivers/tty/vt/vt.c
> >> > @@ -1197,6 +1197,12 @@ 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);
> >> >  		case 2: /* erase whole display */
> >> >  			count = vc->vc_cols * vc->vc_rows;
> >> >  			start = (unsigned short *)vc->vc_origin;
> >> 
> >> Nitpick: the cases were ordered before -- 3 should go after 2.
> >> 
> > This is on purpose to continue with code for case 2 as it 
> prepares variables
> > for cleaning visible part of display after the switch block.
> 
> Oops, sorry; I saw an imaginary break statement there.

Shouldn't there be a "/* fall through */", or similar, comment,
or all of the existing ones in the kernel extraneous?  Personally,
I prefer to see clearly that the missing "break" is intentional.

> 
> - Chris.
> -- 
> Chris Ball   <cjb@laptop.org>   <http://printf.net/>
> One Laptop Per Child
> --
> To unsubscribe from this list: send the line "unsubscribe 
> linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] Clean console safely
  2011-04-13 23:55             ` Daniel Taylor
@ 2011-04-15  8:08               ` Petr Písař
  2016-07-21 12:53                 ` Jiri Slaby
  0 siblings, 1 reply; 17+ messages in thread
From: Petr Písař @ 2011-04-15  8:08 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Alan Cox, linux-kernel, Artem Bityutskiy, Chris Ball,
	Daniel Taylor, Petr Písař

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


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH] Clean console safely
  2011-04-15  8:08               ` Petr Písař
@ 2016-07-21 12:53                 ` Jiri Slaby
  0 siblings, 0 replies; 17+ messages in thread
From: Jiri Slaby @ 2016-07-21 12:53 UTC (permalink / raw)
  To: Petr Písař, Greg Kroah-Hartman
  Cc: Alan Cox, linux-kernel, Artem Bityutskiy, Chris Ball,
	Daniel Taylor

On 04/15/2011, 10:08 AM, Petr Písař wrote:
> 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);

Why is here the division? I suppose this is superfluous, given
scr_memsetw proper divides the size, hm?

> +			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;
> 


-- 
js

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2016-07-21 12:53 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-24  9:56 [PATCH] Clean console safely Petr Písař
2011-03-24 10:24 ` Alan Cox
2011-03-24 14:15   ` Petr Pisar
2011-03-24 14:51     ` Alan Cox
  -- strict thread matches above, loose matches on Subject: below --
2011-04-13 14:32 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ř
2016-07-21 12:53                 ` Jiri Slaby
2011-04-13 15:32         ` Alexander Stein

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).