summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYong Li <yong@topologyinc.com>2015-04-29 13:40:42 -0400
committerCarlos Martín Nieto <cmn@dwim.me>2015-05-18 21:06:05 +0200
commit822af03929cad5c59d71926a7240ea17271c20ef (patch)
treea5982b1bc2e10b058a24d80f0dcebb481505a23a
parent1c01006b3b8f4511098d895bd0e669d9fcc0834b (diff)
downloadlibgit2-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.c5
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);
}