]> Savannah Git Hosting - gnulib.git/commitdiff
regex: fix dangling-backreference bug
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 19 Sep 2015 17:16:02 +0000 (10:16 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 19 Sep 2015 17:16:47 +0000 (10:16 -0700)
This should fix the following bugs:
http://bugs.gnu.org/21513 assertion error in pop_fail_stack
http://bugs.gnu.org/19775 Test failing after the CVE fix
https://sourceware.org/bugzilla/show_bug.cgi?id=11053
Wrong results with backreferences
https://sourceware.org/bugzilla/show_bug.cgi?id=17356
regex assertion violation with triple backreferences
* lib/regexec.c (set_regs): Don't pop an empty failure stack.

ChangeLog
lib/regexec.c

index f846aac701aa5d18edfde1c28edb027c9f408453..1daec1dd89f5d839dabe573646d791c1ffbd5894 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2015-09-19  Paul Eggert  <eggert@cs.ucla.edu>
 
+       regex: fix dangling-backreference bug
+       This should fix the following bugs:
+       http://bugs.gnu.org/21513 assertion error in pop_fail_stack
+       http://bugs.gnu.org/19775 Test failing after the CVE fix
+       https://sourceware.org/bugzilla/show_bug.cgi?id=11053
+       Wrong results with backreferences
+       https://sourceware.org/bugzilla/show_bug.cgi?id=17356
+       regex assertion violation with triple backreferences
+       * lib/regexec.c (set_regs): Don't pop an empty failure stack.
+
        regex: merge patches from libc
 
        2015-09-08  Joseph Myers  <joseph@codesourcery.com>
index db50a564abf8dc261d4112c64095ddb388768072..a0b9d392539c9908c23a7c3887d5981566931be2 100644 (file)
@@ -1513,7 +1513,7 @@ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch,
              free_fail_stack_return (fs);
              return REG_ESPACE;
            }
-         if (fs)
+         if (fs && fs->num)
            cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch,
                                       &eps_via_nodes);
          else