1
0
forked from aniani/vim

patch 9.0.0360: crash when invalid line number on :for is ignored

Problem:    Crash when invalid line number on :for is ignored.
Solution:   Do not check breakpoint for non-existing line.
This commit is contained in:
Bram Moolenaar 2022-09-02 16:47:16 +01:00
parent 8deb2b30c7
commit 35d21c6830
3 changed files with 16 additions and 1 deletions

View File

@ -1068,7 +1068,7 @@ do_cmdline(
// Check for the next breakpoint at or after the ":while"
// or ":for".
if (breakpoint != NULL)
if (breakpoint != NULL && lines_ga.ga_len > current_line)
{
*breakpoint = dbg_find_breakpoint(
getline_equal(fgetline, cookie, getsourceline),

View File

@ -1,6 +1,7 @@
" Tests for various eval things.
source view_util.vim
source shared.vim
function s:foo() abort
try
@ -87,6 +88,18 @@ func Test_for_over_null_string()
let &enc = save_enc
endfunc
func Test_for_invalid_line_count()
let lines =<< trim END
111111111111111111111111 for line in ['one']
endfor
END
call writefile(lines, 'XinvalidFor')
" only test that this doesn't crash
call RunVim([], [], '-u NONE -e -s -S XinvalidFor -c qa')
call delete('XinvalidFor')
endfunc
func Test_readfile_binary()
new
call setline(1, ['one', 'two', 'three'])

View File

@ -707,6 +707,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
360,
/**/
359,
/**/