aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2019-11-21 22:01:34 +0200
committerArnold D. Robbins <arnold@skeeve.com>2019-11-21 22:01:34 +0200
commitfd610c79b51ecd3be2ad3af9169b030cd53927ac (patch)
tree3d5088dd18a141247c40bccfa77f6249918a4ae0
parent204dfd4460f499ade13a56152d2b21dcb287ace9 (diff)
downloadegawk-fd610c79b51ecd3be2ad3af9169b030cd53927ac.tar.gz
egawk-fd610c79b51ecd3be2ad3af9169b030cd53927ac.tar.bz2
egawk-fd610c79b51ecd3be2ad3af9169b030cd53927ac.zip
Update regexec.c.
-rw-r--r--support/ChangeLog4
-rw-r--r--support/regexec.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/support/ChangeLog b/support/ChangeLog
index ca8f6a3f..5ef08afb 100644
--- a/support/ChangeLog
+++ b/support/ChangeLog
@@ -1,3 +1,7 @@
+2019-11-21 Arnold D. Robbins <arnold@skeeve.com>
+
+ * regexec.c: Updated from GNULIB.
+
2019-10-19 Arnold D. Robbins <arnold@skeeve.com>
* regcomp.c, regex_internal.c, regex_internal.h,
diff --git a/support/regexec.c b/support/regexec.c
index 3c46ac81..38b6d671 100644
--- a/support/regexec.c
+++ b/support/regexec.c
@@ -1266,10 +1266,13 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
if (type == OP_BACK_REF)
{
Idx subexp_idx = dfa->nodes[node].opr.idx + 1;
- naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so;
+ if (subexp_idx < nregs)
+ naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so;
if (fs != NULL)
{
- if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1)
+ if (subexp_idx >= nregs
+ || regs[subexp_idx].rm_so == -1
+ || regs[subexp_idx].rm_eo == -1)
return -1;
else if (naccepted)
{