From 0804020d92975c20a683f490f81339c14555b2d4 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Tue, 28 May 2013 14:49:09 +0200 Subject: [PATCH] datamatcher_init: play it safe and do a strdup on the match string --- src/repodata.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/repodata.c b/src/repodata.c index 9b4d352..4d0a46d 100644 --- a/src/repodata.c +++ b/src/repodata.c @@ -1071,7 +1071,7 @@ solvabledata_fetch(Solvable *s, KeyValue *kv, Id keyname) int datamatcher_init(Datamatcher *ma, const char *match, int flags) { - ma->match = match; + ma->match = match ? solv_strdup(match) : 0; ma->flags = flags; ma->error = 0; ma->matchdata = 0; @@ -1108,6 +1108,8 @@ datamatcher_init(Datamatcher *ma, const char *match, int flags) void datamatcher_free(Datamatcher *ma) { + if (ma->match) + ma->match = solv_free((char *)ma->match); if ((ma->flags & SEARCH_STRINGMASK) == SEARCH_REGEX && ma->matchdata) { regfree(ma->matchdata); -- 2.7.4