* [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).