From b2ecf477550ab799c82d65e9eddd5260865556bf Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Sat, 18 Jan 2003 20:48:52 +0000 Subject: [PATCH] Fixed bug #21732 (Added a sanity check, that prevents parameter mismatch). --- ext/pcre/php_pcre.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c index 6776bc02dc..5bd8204410 100644 --- a/ext/pcre/php_pcre.c +++ b/ext/pcre/php_pcre.c @@ -1044,6 +1044,10 @@ static void preg_replace_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_callabl zend_get_parameters_ex(ZEND_NUM_ARGS(), ®ex, &replace, &subject, &limit) == FAILURE) { WRONG_PARAM_COUNT; } + if (Z_TYPE_PP(replace) == IS_ARRAY && Z_TYPE_PP(regex) != IS_ARRAY) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Parameter mismatch, pattern is a string while replacement in an array."); + RETURN_FALSE; + } SEPARATE_ZVAL(replace); if (Z_TYPE_PP(replace) != IS_ARRAY) -- 2.40.0