From c72e452c5ebffb6e6d744e5f8b91ca0c212c5d7f Mon Sep 17 00:00:00 2001 From: Zev Weiss Date: Sun, 25 Oct 2015 21:59:32 -0500 Subject: dfa: plug a memory leak in dfamust * src/dfa.c (dfamust): Ensure MP is freed, by refraining from returning early when, at "done:" *RESULT is NULL. --- src/dfa.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/dfa.c b/src/dfa.c index c1a00f8d..856a8869 100644 --- a/src/dfa.c +++ b/src/dfa.c @@ -4146,15 +4146,17 @@ dfamust (struct dfa const *d) break; } } -done: - if (!*result) - return NULL; - - struct dfamust *dm = xmalloc (sizeof *dm); - dm->exact = exact; - dm->begline = begline; - dm->endline = endline; - dm->must = xstrdup (result); + done:; + + struct dfamust *dm = NULL; + if (*result) + { + dm = xmalloc (sizeof *dm); + dm->exact = exact; + dm->begline = begline; + dm->endline = endline; + dm->must = xstrdup (result); + } while (mp) { -- cgit v1.2.1