mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.1.0194: possibly use of NULL pointer
Problem: Possibly use of NULL pointer. (Coverity) Solution: Reset the re_in_use flag earlier.
This commit is contained in:
parent
ca4cc018ad
commit
414998023f
12
src/regexp.c
12
src/regexp.c
@ -8266,6 +8266,7 @@ vim_regexec_string(
|
|||||||
rex.reg_endpos = NULL;
|
rex.reg_endpos = NULL;
|
||||||
|
|
||||||
result = rmp->regprog->engine->regexec_nl(rmp, line, col, nl);
|
result = rmp->regprog->engine->regexec_nl(rmp, line, col, nl);
|
||||||
|
rmp->regprog->re_in_use = FALSE;
|
||||||
|
|
||||||
/* NFA engine aborted because it's very slow. */
|
/* NFA engine aborted because it's very slow. */
|
||||||
if (rmp->regprog->re_engine == AUTOMATIC_ENGINE
|
if (rmp->regprog->re_engine == AUTOMATIC_ENGINE
|
||||||
@ -8284,7 +8285,11 @@ vim_regexec_string(
|
|||||||
#endif
|
#endif
|
||||||
rmp->regprog = vim_regcomp(pat, re_flags);
|
rmp->regprog = vim_regcomp(pat, re_flags);
|
||||||
if (rmp->regprog != NULL)
|
if (rmp->regprog != NULL)
|
||||||
|
{
|
||||||
|
rmp->regprog->re_in_use = TRUE;
|
||||||
result = rmp->regprog->engine->regexec_nl(rmp, line, col, nl);
|
result = rmp->regprog->engine->regexec_nl(rmp, line, col, nl);
|
||||||
|
rmp->regprog->re_in_use = FALSE;
|
||||||
|
}
|
||||||
vim_free(pat);
|
vim_free(pat);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8294,7 +8299,6 @@ vim_regexec_string(
|
|||||||
rex_in_use = rex_in_use_save;
|
rex_in_use = rex_in_use_save;
|
||||||
if (rex_in_use)
|
if (rex_in_use)
|
||||||
rex = rex_save;
|
rex = rex_save;
|
||||||
rmp->regprog->re_in_use = FALSE;
|
|
||||||
|
|
||||||
return result > 0;
|
return result > 0;
|
||||||
}
|
}
|
||||||
@ -8382,6 +8386,7 @@ vim_regexec_multi(
|
|||||||
|
|
||||||
result = rmp->regprog->engine->regexec_multi(
|
result = rmp->regprog->engine->regexec_multi(
|
||||||
rmp, win, buf, lnum, col, tm, timed_out);
|
rmp, win, buf, lnum, col, tm, timed_out);
|
||||||
|
rmp->regprog->re_in_use = FALSE;
|
||||||
|
|
||||||
/* NFA engine aborted because it's very slow. */
|
/* NFA engine aborted because it's very slow. */
|
||||||
if (rmp->regprog->re_engine == AUTOMATIC_ENGINE
|
if (rmp->regprog->re_engine == AUTOMATIC_ENGINE
|
||||||
@ -8409,8 +8414,12 @@ vim_regexec_multi(
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (rmp->regprog != NULL)
|
if (rmp->regprog != NULL)
|
||||||
|
{
|
||||||
|
rmp->regprog->re_in_use = TRUE;
|
||||||
result = rmp->regprog->engine->regexec_multi(
|
result = rmp->regprog->engine->regexec_multi(
|
||||||
rmp, win, buf, lnum, col, tm, timed_out);
|
rmp, win, buf, lnum, col, tm, timed_out);
|
||||||
|
rmp->regprog->re_in_use = FALSE;
|
||||||
|
}
|
||||||
vim_free(pat);
|
vim_free(pat);
|
||||||
}
|
}
|
||||||
p_re = save_p_re;
|
p_re = save_p_re;
|
||||||
@ -8419,7 +8428,6 @@ vim_regexec_multi(
|
|||||||
rex_in_use = rex_in_use_save;
|
rex_in_use = rex_in_use_save;
|
||||||
if (rex_in_use)
|
if (rex_in_use)
|
||||||
rex = rex_save;
|
rex = rex_save;
|
||||||
rmp->regprog->re_in_use = FALSE;
|
|
||||||
|
|
||||||
return result <= 0 ? 0 : result;
|
return result <= 0 ? 0 : result;
|
||||||
}
|
}
|
||||||
|
@ -789,6 +789,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
194,
|
||||||
/**/
|
/**/
|
||||||
193,
|
193,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user