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