Browse Source

Properly free callback_name only when necessary.

experimental/pre_new_hash_func
Andrei Zmievski 26 years ago
parent
commit
e1f671fb5c
  1. 17
      ext/pcre/php_pcre.c

17
ext/pcre/php_pcre.c

@ -981,16 +981,17 @@ static void preg_replace_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_callabl
SEPARATE_ZVAL(replace);
if (Z_TYPE_PP(replace) != IS_ARRAY)
convert_to_string_ex(replace);
if (is_callable_replace && !zend_is_callable(*replace, 0, &callback_name)) {
php_error(E_WARNING, "%s() requires argument 2, '%s', to be a valid callback",
get_active_function_name(), callback_name);
if (is_callable_replace) {
if (!zend_is_callable(*replace, 0, &callback_name)) {
php_error(E_WARNING, "%s() requires argument 2, '%s', to be a valid callback",
get_active_function_name(), callback_name);
efree(callback_name);
*return_value = **subject;
zval_copy_ctor(return_value);
return;
}
efree(callback_name);
*return_value = **subject;
zval_copy_ctor(return_value);
return;
}
if (callback_name)
efree(callback_name);
SEPARATE_ZVAL(regex);
SEPARATE_ZVAL(subject);

Loading…
Cancel
Save