summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-07-18 06:02:09 +0200
committerBram Moolenaar <Bram@vim.org>2018-07-18 06:02:09 +0200
commit414998023fbff15cce20ef01a54d0366370ad8b6 (patch)
treeb46a5878a56292fa7ffa6f9afbb0d0f3130b3c7d
parentca4cc018addbeb3ac5d0e05f18847015f91ff814 (diff)
downloadvim-git-414998023fbff15cce20ef01a54d0366370ad8b6.tar.gz
patch 8.1.0194: possibly use of NULL pointerv8.1.0194
Problem: Possibly use of NULL pointer. (Coverity) Solution: Reset the re_in_use flag earlier.
-rw-r--r--src/regexp.c12
-rw-r--r--src/version.c2
2 files changed, 12 insertions, 2 deletions
diff --git a/src/regexp.c b/src/regexp.c
index 88cf8817a..9d7350b6e 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -8266,6 +8266,7 @@ vim_regexec_string(
rex.reg_endpos = NULL;
result = rmp->regprog->engine->regexec_nl(rmp, line, col, nl);
+ rmp->regprog->re_in_use = FALSE;
/* NFA engine aborted because it's very slow. */
if (rmp->regprog->re_engine == AUTOMATIC_ENGINE
@@ -8284,7 +8285,11 @@ vim_regexec_string(
#endif
rmp->regprog = vim_regcomp(pat, re_flags);
if (rmp->regprog != NULL)
+ {
+ rmp->regprog->re_in_use = TRUE;
result = rmp->regprog->engine->regexec_nl(rmp, line, col, nl);
+ rmp->regprog->re_in_use = FALSE;
+ }
vim_free(pat);
}
@@ -8294,7 +8299,6 @@ vim_regexec_string(
rex_in_use = rex_in_use_save;
if (rex_in_use)
rex = rex_save;
- rmp->regprog->re_in_use = FALSE;
return result > 0;
}
@@ -8382,6 +8386,7 @@ vim_regexec_multi(
result = rmp->regprog->engine->regexec_multi(
rmp, win, buf, lnum, col, tm, timed_out);
+ rmp->regprog->re_in_use = FALSE;
/* NFA engine aborted because it's very slow. */
if (rmp->regprog->re_engine == AUTOMATIC_ENGINE
@@ -8409,8 +8414,12 @@ vim_regexec_multi(
#endif
if (rmp->regprog != NULL)
+ {
+ rmp->regprog->re_in_use = TRUE;
result = rmp->regprog->engine->regexec_multi(
rmp, win, buf, lnum, col, tm, timed_out);
+ rmp->regprog->re_in_use = FALSE;
+ }
vim_free(pat);
}
p_re = save_p_re;
@@ -8419,7 +8428,6 @@ vim_regexec_multi(
rex_in_use = rex_in_use_save;
if (rex_in_use)
rex = rex_save;
- rmp->regprog->re_in_use = FALSE;
return result <= 0 ? 0 : result;
}
diff --git a/src/version.c b/src/version.c
index 3c9676e51..f6542b672 100644
--- a/src/version.c
+++ b/src/version.c
@@ -790,6 +790,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 194,
+/**/
193,
/**/
192,