bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/2] regex: fix bug with >=16 subexpressions


From: Paul Eggert
Subject: [PATCH 2/2] regex: fix bug with >=16 subexpressions
Date: Tue, 21 Jan 2020 18:47:47 -0800

* lib/regex_internal.h (struct re_backref_cache_entry):
Use bitset_word_t as the type of eps_reachable_subexps_map,
instead of unsigned short int.  This fixes a bug I introduced
to glibc in 2005-09-28T17:33:18Z!address@hidden (glibc commit
2c05d33f90861d074dc12808dafbde30f487b1a0, BZ #1302).
Remove unused member 'unused'.
---
 ChangeLog            | 8 ++++++++
 lib/regex_internal.h | 3 +--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index df8d996c2..2336126b0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2020-01-21  Paul Eggert  <address@hidden>
 
+       regex: fix bug with >=16 subexpressions
+       * lib/regex_internal.h (struct re_backref_cache_entry):
+       Use bitset_word_t as the type of eps_reachable_subexps_map,
+       instead of unsigned short int.  This fixes a bug I introduced
+       to glibc in 2005-09-28T17:33:18Z!address@hidden (glibc commit
+       2c05d33f90861d074dc12808dafbde30f487b1a0, BZ #1302).
+       Remove unused member 'unused'.
+
        regex: simplify definition of BITSET_WORD_BITS
        * config/srclist.txt: Remove regex.c, regex_internal.h temporarily.
        * lib/regex.c (__STDC_WANT_IEC_60559_BFP_EXT__): Define.
diff --git a/lib/regex_internal.h b/lib/regex_internal.h
index 30e921fef..13e15e21e 100644
--- a/lib/regex_internal.h
+++ b/lib/regex_internal.h
@@ -573,9 +573,8 @@ struct re_backref_cache_entry
   Idx str_idx;
   Idx subexp_from;
   Idx subexp_to;
+  bitset_word_t eps_reachable_subexps_map;
   char more;
-  char unused;
-  unsigned short int eps_reachable_subexps_map;
 };
 
 typedef struct
-- 
2.24.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]