aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Mikhirev2014-11-15 12:05:30 +0300
committerDmitry Mikhirev2014-11-15 12:05:30 +0300
commitcdc69c4ccbe8fb5d173c1976e71b06aeb756b666 (patch)
treedc038e931f850228fe695eee3bf49f23388af3c9
parente0032af245d18c83dde14d9df3b753d83f054d5a (diff)
downloadmake_pcre-cdc69c4ccbe8fb5d173c1976e71b06aeb756b666.tar.gz
make_pcre-cdc69c4ccbe8fb5d173c1976e71b06aeb756b666.tar.bz2
make_pcre-cdc69c4ccbe8fb5d173c1976e71b06aeb756b666.tar.xz
make_pcre-cdc69c4ccbe8fb5d173c1976e71b06aeb756b666.zip
gmk_free strings returned by gmk_expand
-rw-r--r--pcre.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/pcre.c b/pcre.c
index c93382b..73bf0fd 100644
--- a/pcre.c
+++ b/pcre.c
@@ -36,7 +36,7 @@ char *match(const char *name, int argc, char **argv)
pcre *re;
const char *err;
int erroffset;
- char *str;
+ char *str = NULL;
int ncap = 0;
int ovec[MAX_CAP*3];
char *retstr = NULL;
@@ -86,6 +86,7 @@ char *match(const char *name, int argc, char **argv)
re = pcre_compile(argv[0], 0, &err, &erroffset, NULL);
} else {
re = pcre_compile(pat, 0, &err, &erroffset, NULL);
+ gmk_free(pat);
}
if (re == NULL) {
fprintf(stderr, "%s: %d: %s\n", name, erroffset, err);
@@ -113,6 +114,9 @@ end_match:
*(str + ovec[i*2 + 1]) = c;
gmk_eval(mk_set, NULL);
}
+ if (str != NULL) {
+ gmk_free(str);
+ }
return retstr;
}