One more regex memory leak fixed.
authorUlrich Drepper <drepper@redhat.com>
Tue, 12 Oct 2010 13:00:33 +0000 (09:00 -0400)
committerUlrich Drepper <drepper@redhat.com>
Tue, 12 Oct 2010 13:00:33 +0000 (09:00 -0400)
ChangeLog
posix/bug-regex31.input
posix/regcomp.c

index 2192364..e2a4a70 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 eea961c..3d1f531 100644 (file)
@@ -1,3 +1,4 @@
+[[][
 ([0]
 ([0]a
 ([0]([0])
index 4ee7b90..b238c08 100644 (file)
@@ -2160,6 +2160,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)