From 817513af4ec5e5a45fdd7ecd0a00e728d00c3ff3 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Mon, 21 Dec 2015 18:09:59 +0800 Subject: [PATCH] Fixed bug #71178 (preg_replace with arrays creates [0] in replace array if not already set) --- NEWS | 4 ++++ ext/pcre/php_pcre.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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; } -- 2.40.0