0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.1.2282: crash when passing many arguments through a partial

Problem:    Crash when passing many arguments through a partial. (Andy
            Massimino)
Solution:   Check the number of arguments. (closes #5186)
This commit is contained in:
Bram Moolenaar
2019-11-10 00:13:50 +01:00
parent ee85702c10
commit 4c054e9fb2
7 changed files with 41 additions and 5 deletions

View File

@@ -2015,12 +2015,18 @@ vim_regsub_both(
call_func(s, -1, &rettv, 1, argv, &funcexe);
}
if (matchList.sl_list.lv_len > 0)
/* fill_submatch_list() was called */
// fill_submatch_list() was called
clear_submatch_list(&matchList);
eval_result = tv_get_string_buf_chk(&rettv, buf);
if (eval_result != NULL)
eval_result = vim_strsave(eval_result);
if (rettv.v_type == VAR_UNKNOWN)
// something failed, no need to report another error
eval_result = NULL;
else
{
eval_result = tv_get_string_buf_chk(&rettv, buf);
if (eval_result != NULL)
eval_result = vim_strsave(eval_result);
}
clear_tv(&rettv);
}
else