From: K.Kosako Date: Sun, 25 Aug 2019 13:59:35 +0000 (+0900) Subject: use empty_status_mem in STACK_EMPTY_CHECK_MEM() and STACK_EMPTY_CHECK_MEM_REC() X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ca64663ca8bb34ca7dc219d18ec6e475cca9dec8;p=onig use empty_status_mem in STACK_EMPTY_CHECK_MEM() and STACK_EMPTY_CHECK_MEM_REC() --- diff --git a/src/regexec.c b/src/regexec.c index c126f44..642c147 100644 --- a/src/regexec.c +++ b/src/regexec.c @@ -1953,7 +1953,8 @@ stack_double(int is_alloca, char** arg_alloc_base, int level = 0;\ (isnull) = 1;\ while (k < stk) {\ - if (k->type == STK_MEM_START && level == 0) {\ + if (k->type == STK_MEM_START && level == 0 &&\ + MEM_STATUS_LIMIT_AT((reg)->empty_status_mem, k->zid)) {\ STACK_MEM_START_GET_PREV_END_ADDR(k, reg, endp);\ if (endp == 0) {\ (isnull) = 0; break;\ @@ -1999,7 +2000,9 @@ stack_double(int is_alloca, char** arg_alloc_base, (isnull) = 1;\ while (k < stk) {\ if (k->type == STK_MEM_START) {\ - if (level == 0 && prec_level == 0) {\ + if (level == 0 && \ + MEM_STATUS_LIMIT_AT((reg)->empty_status_mem, k->zid) !=0 \ + && prec_level == 0) {\ STACK_MEM_START_GET_PREV_END_ADDR(k, reg, endp);\ if (endp == 0) {\ (isnull) = 0; break;\