diff options
author | Zev Weiss <zev@bewilderbeest.net> | 2015-10-25 21:59:32 -0500 |
---|---|---|
committer | Jim Meyering <meyering@fb.com> | 2015-10-25 21:09:41 -0700 |
commit | c72e452c5ebffb6e6d744e5f8b91ca0c212c5d7f (patch) | |
tree | 5ed1843b7f90bc5e41d55edbb1596e553ad57534 | |
parent | fbc5a95ee7084b2076d9b00c1458613fd3d582a6 (diff) | |
download | grep-c72e452c5ebffb6e6d744e5f8b91ca0c212c5d7f.tar.gz |
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.
-rw-r--r-- | src/dfa.c | 20 |
1 files changed, 11 insertions, 9 deletions
@@ -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) { |