diff options
Diffstat (limited to 'src/testdir/test_viminfo.vim')
| -rw-r--r-- | src/testdir/test_viminfo.vim | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/testdir/test_viminfo.vim b/src/testdir/test_viminfo.vim index ff79265f8e..b3a8b91cb1 100644 --- a/src/testdir/test_viminfo.vim +++ b/src/testdir/test_viminfo.vim @@ -1371,4 +1371,24 @@ func Test_viminfo_len_one() let &viminfofile = _viminfofile endfunc +func Test_viminfo_len_overflow() + let _viminfofile = &viminfofile + let &viminfofile='' + let viminfo_file = tempname() + defer delete(viminfo_file) + + " Craft a viminfo entry with size_t length overflow + call writefile(['# Viminfo', + \ '|1,4', '|2,>4294967311', + \ '|<"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', + \ '|<BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB', + \ '|<CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC', + \ '|<DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD'], viminfo_file, 'b') + + " Should not crash or cause memory errors + exe 'rviminfo! ' .. viminfo_file + + let &viminfofile = _viminfofile +endfunc + " vim: shiftwidth=2 sts=2 expandtab |
