From 70b9353892a4e67193498700de6e304a6d3e1ab7 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Fri, 11 Mar 2022 13:34:07 -0800
Subject: [PATCH] regex: fix minor over-allocation

* lib/regexec.c (push_fail_stack): Fix off-by-one error that
over-allocated the stack.
---
 ChangeLog     | 4 ++++
 lib/regexec.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 50f60c6372..7a6ade78c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2022-03-11  Paul Eggert  <eggert@cs.ucla.edu>
 
+	regex: fix minor over-allocation
+	* lib/regexec.c (push_fail_stack): Fix off-by-one error that
+	over-allocated the stack.
+
 	regex: fix free_fail_stack undefined behavior
 	* lib/regexec.c (push_fail_stack): Don’t increment number of
 	re_fail_stack_t entries until after successful allocation.  This
diff --git a/lib/regexec.c b/lib/regexec.c
index 0691e91e1e..521cb02841 100644
--- a/lib/regexec.c
+++ b/lib/regexec.c
@@ -1309,7 +1309,7 @@ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node,
 {
   reg_errcode_t err;
   Idx num = fs->num;
-  if (num + 1 == fs->alloc)
+  if (num == fs->alloc)
     {
       struct re_fail_stack_ent_t *new_array;
       new_array = re_realloc (fs->stack, struct re_fail_stack_ent_t,
-- 
2.39.5