From: Dmitry Stogov Date: Mon, 17 Mar 2014 13:38:15 +0000 (+0400) Subject: Fixed ext/ereg problems X-Git-Tag: POST_PHPNG_MERGE~412^2~290 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=355b136466ae41eccd25e5a4f1ce16be9c9b9fd9;p=php Fixed ext/ereg problems --- diff --git a/ext/ereg/ereg.c b/ext/ereg/ereg.c index c5ad085bfa..45ab9f5739 100644 --- a/ext/ereg/ereg.c +++ b/ext/ereg/ereg.c @@ -350,6 +350,10 @@ static void php_ereg(INTERNAL_FUNCTION_PARAMETERS, int icase) } match_len = 1; + if (array && Z_ISREF_P(array)) { + array = Z_REFVAL_P(array); + } + if (array && err != REG_NOMATCH) { match_len = (int) (subs[0].rm_eo - subs[0].rm_so); string_len = findin_len + 1; @@ -669,7 +673,7 @@ static void php_split(INTERNAL_FUNCTION_PARAMETERS, int icase) php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Regular Expression"); zend_hash_destroy(Z_ARRVAL_P(return_value)); - efree(Z_ARRVAL_P(return_value)); + efree(Z_ARR_P(return_value)); RETURN_FALSE; } else { /* On a real match */ @@ -696,7 +700,7 @@ static void php_split(INTERNAL_FUNCTION_PARAMETERS, int icase) php_ereg_eprint(err, &re TSRMLS_CC); regfree(&re); zend_hash_destroy(Z_ARRVAL_P(return_value)); - efree(Z_ARRVAL_P(return_value)); + efree(Z_ARR_P(return_value)); RETURN_FALSE; }