vim-patch:7.4.1664

Problem:    Crash in :cgetexpr.
Solution:   Check for NULL pointer. (Dominique) Add a test.

89c64d557d
This commit is contained in:
James McCoy 2016-11-12 15:58:19 -05:00
parent 830bf8665b
commit 2e5736e2cd
No known key found for this signature in database
GPG Key ID: DFE691AE331BA3DB
3 changed files with 10 additions and 2 deletions

View File

@ -483,8 +483,10 @@ qf_init_ext (
p_str += len;
} else if (tv->v_type == VAR_LIST) {
/* Get the next line from the supplied list */
while (p_li && p_li->li_tv.v_type != VAR_STRING)
while (p_li && (p_li->li_tv.v_type != VAR_STRING
|| p_li->li_tv.vval.v_string == NULL)) {
p_li = p_li->li_next; /* Skip non-string items */
}
if (!p_li) /* End of the list */
break;

View File

@ -780,7 +780,7 @@ static int included_patches[] = {
// 1667 NA
// 1666 NA
// 1665 NA
// 1664,
1664,
1663,
// 1662 NA
// 1661 NA

View File

@ -540,6 +540,12 @@ describe('helpgrep', function()
call('Test_caddbuffer_to_empty')
expected_empty()
end)
it('cgetexpr does not crash with a NULL element in a list', function()
execute('cgetexpr [$x]')
-- Still alive?
eq(2, eval('1+1'))
end)
end)
describe('errorformat', function()