From 7256c713c17b1da11cdfaa269898c62fef10a132 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 5 Feb 2021 17:08:29 -0800 Subject: [PATCH] regex: debug check for set member duplicates * lib/regex_internal.c (re_node_set_insert): Add a DEBUG_ASSERT that would have caught some recently-fixed performance bugs that caused sets to contain duplicate members. --- ChangeLog | 5 +++++ lib/regex_internal.c | 1 + 2 files changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index bd7d1fa16e..69abc35dc5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2021-02-05 Paul Eggert + regex: debug check for set member duplicates + * lib/regex_internal.c (re_node_set_insert): Add a DEBUG_ASSERT + that would have caught some recently-fixed performance bugs + that caused sets to contain duplicate members. + regex: fix longstanding backref match bug This fixes a longstanding glibc bug concerning backreferences (2009-12-04). diff --git a/lib/regex_internal.c b/lib/regex_internal.c index 9dd387ef85..55f6b66de0 100644 --- a/lib/regex_internal.c +++ b/lib/regex_internal.c @@ -1314,6 +1314,7 @@ re_node_set_insert (re_node_set *set, Idx elem) { for (idx = set->nelem; set->elems[idx - 1] > elem; idx--) set->elems[idx] = set->elems[idx - 1]; + DEBUG_ASSERT (set->elems[idx - 1] < elem); } /* Insert the new element. */ -- 2.39.5