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>
diff --git a/src/testdir/test_terminal2.vim b/src/testdir/test_terminal2.vim
index 8615bf5..6ce531e 100644
--- a/src/testdir/test_terminal2.vim
+++ b/src/testdir/test_terminal2.vim
@@ -64,6 +64,14 @@
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 @@
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