>From 4e43b4d57997e7a4c08cf0134f62e486843df4e3 Mon Sep 17 00:00:00 2001 From: Zev Weiss Date: Sun, 25 Oct 2015 21:59:32 -0500 Subject: [PATCH] dfa: plug a memory leak in dfamust (). * src/dfa.c (dfamust): ensure 'mp' is freed. --- src/dfa.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/dfa.c b/src/dfa.c index c1a00f8..9d5808f 100644 --- a/src/dfa.c +++ b/src/dfa.c @@ -3936,6 +3936,7 @@ dfamust (struct dfa const *d) { must *mp = NULL; char const *result = ""; + struct dfamust *dm = NULL; size_t i; bool exact = false; bool begline = false; @@ -4147,14 +4148,15 @@ dfamust (struct dfa const *d) } } done: - if (!*result) - return NULL; - - struct dfamust *dm = xmalloc (sizeof *dm); - dm->exact = exact; - dm->begline = begline; - dm->endline = endline; - dm->must = xstrdup (result); + + if (*result) + { + dm = xmalloc (sizeof *dm); + dm->exact = exact; + dm->begline = begline; + dm->endline = endline; + dm->must = xstrdup (result); + } while (mp) { -- 2.6.1