diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-07-18 06:02:09 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-07-18 06:02:09 +0200 |
commit | 414998023fbff15cce20ef01a54d0366370ad8b6 (patch) | |
tree | b46a5878a56292fa7ffa6f9afbb0d0f3130b3c7d /src | |
parent | ca4cc018addbeb3ac5d0e05f18847015f91ff814 (diff) |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/regexp.c | 12 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/regexp.c b/src/regexp.c index 88cf8817ab..9d7350b6ed 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 3c9676e517..f6542b672a 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, |