[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