1
0
forked from aniani/vim

patch 9.0.1916: Crash when allocating large terminal screen

Problem:  Crash when allocating large terminal screen
Solution: Don't allow values > 1000 for terminal
          screen columns and rows

closes: #13126

Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Christian Brabandt
2023-09-19 21:05:20 +02:00
parent 476733f3d0
commit aa64ba1587
5 changed files with 40 additions and 1 deletions

View File

@@ -64,6 +64,14 @@ func Test_terminal_termwinsize_option_zero()
call StopShellInTerminal(buf)
exe buf . 'bwipe'
" This used to crash Vim
set termwinsize=10000*10000
let buf = Run_shell_in_terminal({})
let win = bufwinid(buf)
call assert_equal([1000, 1000], term_getsize(buf))
call StopShellInTerminal(buf)
exe buf . 'bwipe'
set termwinsize=
endfunc
@@ -271,6 +279,25 @@ func Test_terminal_resize()
set statusline&
endfunc
func Test_terminal_resize2()
CheckNotMSWindows
set statusline=x
terminal
call assert_equal(2, winnr('$'))
let buf = bufnr()
" Wait for the shell to display a prompt
call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
" This used to crash Vim
call feedkeys("printf '\033[8;99999;99999t'\<CR>", 'xt')
redraw
call feedkeys("exit\<CR>", 'xt')
call TermWait(buf)
set statusline&
endfunc
" must be nearly the last, we can't go back from GUI to terminal
func Test_zz1_terminal_in_gui()
CheckCanRunGui