]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
One more regex memory leak fixed.
authorUlrich Drepper <drepper@redhat.com>
Tue, 12 Oct 2010 13:00:33 +0000 (09:00 -0400)
committerPetr Baudis <pasky@suse.cz>
Tue, 9 Nov 2010 01:38:44 +0000 (02:38 +0100)
(cherry picked from commit b833d51fbbf78b38c6ff68074c22d3fe3ddd0ce3)

ChangeLog
posix/bug-regex31.input
posix/regcomp.c

index ee288b0460a14dbf61aa763eec9a52916abc5b7f..68d62d28666cfd82bd819bb30ede87d49bb06fe2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-10-12  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #12078]
+       * posix/regcomp.c (parse_branch): One more memory leak plugged.
+       * posix/bug-regex31.input: Add test case.
+
 2010-10-11  Ulrich Drepper  <drepper@gmail.com>
 
        * posix/bug-regex31.c: Rewrite to run multiple tests from stdin.
index eea961ccf5ec7d600bf5841eb1b18473884d937f..3d1f531f4e4db3730c0d861e9f4bec4ae51b6645 100644 (file)
@@ -1,3 +1,4 @@
+[[][
 ([0]
 ([0]a
 ([0]([0])
index c6de044050f1fa30519eb2bcfce3521aaa8cafd0..c48020dcb9abae53910e88432ca98689f5993b59 100644 (file)
@@ -2154,6 +2154,8 @@ parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token,
       exp = parse_expression (regexp, preg, token, syntax, nest, err);
       if (BE (*err != REG_NOERROR && exp == NULL, 0))
        {
+         if (tree != NULL)
+           postorder (tree, free_tree, NULL);
          return NULL;
        }
       if (tree != NULL && exp != NULL)