From 7f6191fd1973d53f54053ed24859aa8d1180995b Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 19 Sep 2015 10:16:02 -0700 Subject: [PATCH] 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. --- ChangeLog | 10 ++++++++++ lib/regexec.c | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f846aac701..1daec1dd89 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2015-09-19 Paul Eggert + 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 diff --git a/lib/regexec.c b/lib/regexec.c index db50a564ab..a0b9d39253 100644 --- a/lib/regexec.c +++ b/lib/regexec.c @@ -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 -- 2.39.5