• Nicolas Pitre's avatar
    tty vt: fix character insertion overflow · a883b70d
    Nicolas Pitre authored
    Commit 81732c3b ("tty vt: Fix line garbage in virtual console on
    command line edition") broke insert_char() in multiple ways.  Then
    commit b1a925f4 ("tty vt: Fix a regression in command line edition")
    partially fixed it.  However, the buffer being moved is still too large
    and overflowing beyond the end of the current line, corrupting existing
    characters on the next line.
    
    Example test case:
    
    echo -e "abc\nde\x1b[A\x1b[4h \x1b[4l\x1b[B"
    
    Expected result:
    
    ab c
    de
    
    Current result:
    
    ab c
     e
    
    Needless to say that this is very annoying when inserting words in the
    middle of paragraphs with certain text editors.
    Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
    Cc: Jean-François Moine <moinejf@free.fr>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a883b70d
vt.c 101 KB