From: Xinchen Hui Date: Mon, 21 Dec 2015 10:09:59 +0000 (+0800) Subject: Fixed bug #71178 (preg_replace with arrays creates [0] in replace array if not alread... X-Git-Tag: php-7.0.2RC1~4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=817513af4ec5e5a45fdd7ecd0a00e728d00c3ff3;p=php Fixed bug #71178 (preg_replace with arrays creates [0] in replace array if not already set) --- diff --git a/NEWS b/NEWS index c0aa2e779a..9b6f8b9076 100644 --- a/NEWS +++ b/NEWS @@ -45,6 +45,10 @@ PHP NEWS - Opcache: . Fixed bug #71127 (Define in auto_prepend_file is overwrite). (Laruence) +- PCRE: + . Fixed bug #71178 (preg_replace with arrays creates [0] in replace array + if not already set). (Laruence) + - Readline: . Fixed bug #71094 (readline_completion_function corrupts static array on second TAB). (Nikita) diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c index 66ee238dc4..6769eb7d9a 100644 --- a/ext/pcre/php_pcre.c +++ b/ext/pcre/php_pcre.c @@ -1380,7 +1380,7 @@ static zend_string *php_replace_in_subject(zval *regex, zval *replace, zval *sub /* Get current entry */ replace_entry = NULL; while (replace_idx < Z_ARRVAL_P(replace)->nNumUsed) { - if (Z_TYPE(Z_ARRVAL_P(replace)->arData[replace_idx].val) != IS_UNUSED) { + if (Z_TYPE(Z_ARRVAL_P(replace)->arData[replace_idx].val) != IS_UNDEF) { replace_entry = &Z_ARRVAL_P(replace)->arData[replace_idx].val; break; }