* 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 bd7d1fa16..69abc35dc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2021-02-05 Paul Eggert <egg...@cs.ucla.edu> + 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 <https://sourceware.org/11053> (2009-12-04). diff --git a/lib/regex_internal.c b/lib/regex_internal.c index 9dd387ef8..55f6b66de 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.27.0