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:
14
src/regexp.c
14
src/regexp.c
@@ -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
|
||||
|
Reference in New Issue
Block a user