Fixed possible incorrect "mark" usage

This commit is contained in:
Dmitry Stogov 2018-01-09 10:30:00 +03:00
parent fc6a990891
commit cfee682802

View file

@ -1684,6 +1684,11 @@ static zend_string *php_pcre_replace_func_impl(pcre_cache_entry *pce, zend_strin
advance to the next character. */ advance to the next character. */
g_notempty = (start_offset == offsets[0]) ? PCRE_NOTEMPTY_ATSTART | PCRE_ANCHORED : 0; g_notempty = (start_offset == offsets[0]) ? PCRE_NOTEMPTY_ATSTART | PCRE_ANCHORED : 0;
#ifdef PCRE_EXTRA_MARK
/* replace function may use the same regex recursively */
extra->mark = &mark;
extra->flags |= PCRE_EXTRA_MARK;
#endif
} else if (count == PCRE_ERROR_NOMATCH || limit == 0) { } else if (count == PCRE_ERROR_NOMATCH || limit == 0) {
/* If we previously set PCRE_NOTEMPTY_ATSTART after a null match, /* If we previously set PCRE_NOTEMPTY_ATSTART after a null match,
this is not necessarily the end. We need to advance this is not necessarily the end. We need to advance