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,