From: Paul Eggert Date: Fri, 11 Mar 2022 21:34:07 +0000 (-0800) Subject: regex: fix minor over-allocation X-Git-Tag: v1.0~2336 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=70b9353892a4e67193498700de6e304a6d3e1ab7;p=gnulib.git regex: fix minor over-allocation * lib/regexec.c (push_fail_stack): Fix off-by-one error that over-allocated the stack. --- diff --git a/ChangeLog b/ChangeLog index 50f60c6372..7a6ade78c3 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,