1
0
forked from aniani/vim

updated for version 7.4.051

Problem:    Syntax highlighting a Yaml file causes a crash. (Blake Preston)
Solution:   Copy the pim structure before calling addstate() to avoid it
            becoming invalide when the state list is reallocated.
This commit is contained in:
Bram Moolenaar
2013-10-06 15:46:11 +02:00
parent b133208080
commit a951e35478
2 changed files with 12 additions and 0 deletions

View File

@@ -6458,6 +6458,7 @@ nfa_regmatch(prog, start, submatch, m)
if (add_state != NULL)
{
nfa_pim_T *pim;
nfa_pim_T pim_copy;
if (t->pim.result == NFA_PIM_UNUSED)
pim = NULL;
@@ -6531,6 +6532,15 @@ nfa_regmatch(prog, start, submatch, m)
pim = NULL;
}
/* If "pim" points into l->t it will become invalid when
* adding the state causes the list to be reallocated. Make a
* local copy to avoid that. */
if (pim == &t->pim)
{
copy_pim(&pim_copy, pim);
pim = &pim_copy;
}
if (add_here)
addstate_here(thislist, add_state, &t->subs, pim, &listidx);
else

View File

@@ -738,6 +738,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
51,
/**/
50,
/**/