From d85d2084d4a90eeba30950fe999549caf510dbfc Mon Sep 17 00:00:00 2001 From: Paul Eggert 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 ca26d9774f..8d6e23eceb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2022-03-11 Paul Eggert + 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