diff options
author | Yong Li <yong@topologyinc.com> | 2015-04-29 13:40:42 -0400 |
---|---|---|
committer | Carlos MartÃn Nieto <cmn@dwim.me> | 2015-05-18 21:06:05 +0200 |
commit | 822af03929cad5c59d71926a7240ea17271c20ef (patch) | |
tree | a5982b1bc2e10b058a24d80f0dcebb481505a23a | |
parent | 1c01006b3b8f4511098d895bd0e669d9fcc0834b (diff) | |
download | libgit2-822af03929cad5c59d71926a7240ea17271c20ef.tar.gz |
Do not call regfree() on an empty regex that is not successfully created by regcomp
(also removed an unused member "has_regex" from all_iter)
-rw-r--r-- | src/config.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/config.c b/src/config.c index 4f209ecf6..e2c7563c2 100644 --- a/src/config.c +++ b/src/config.c @@ -335,7 +335,6 @@ typedef struct { git_config_iterator *current; const git_config *cfg; regex_t regex; - int has_regex; size_t i; } all_iter; @@ -472,7 +471,6 @@ int git_config_iterator_glob_new(git_config_iterator **out, const git_config *cf if ((result = regcomp(&iter->regex, regexp, REG_EXTENDED)) != 0) { giterr_set_regex(&iter->regex, result); - regfree(&iter->regex); git__free(iter); return -1; } @@ -895,7 +893,8 @@ void multivar_iter_free(git_config_iterator *_iter) iter->iter->free(iter->iter); git__free(iter->name); - regfree(&iter->regex); + if (iter->have_regex) + regfree(&iter->regex); git__free(iter); } |