vim-patch:9.0.0260: using freed memory when using 'quickfixtextfunc' recursively

Problem:    Using freed memory when using 'quickfixtextfunc' recursively.
Solution:   Do not allow for recursion.
d6c67629ed

Cherry-pick Test_qflist_statusmsg() from patch 8.2.4617.
This commit is contained in:
zeertzjq
2022-10-13 11:06:49 +08:00
parent 186c489fd6
commit 5740b3e076
2 changed files with 55 additions and 0 deletions

View File

@@ -3984,6 +3984,12 @@ static list_T *call_qftf_func(qf_list_T *qfl, int qf_winid, long start_idx, long
{
Callback *cb = &qftf_cb;
list_T *qftf_list = NULL;
static bool recursive = false;
if (recursive) {
return NULL; // this doesn't work properly recursively
}
recursive = true;
// If 'quickfixtextfunc' is set, then use the user-supplied function to get
// the text to display. Use the local value of 'quickfixtextfunc' if it is
@@ -4017,6 +4023,7 @@ static list_T *call_qftf_func(qf_list_T *qfl, int qf_winid, long start_idx, long
tv_dict_unref(dict);
}
recursive = false;
return qftf_list;
}