From 355b136466ae41eccd25e5a4f1ce16be9c9b9fd9 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Mon, 17 Mar 2014 17:38:15 +0400 Subject: [PATCH] Fixed ext/ereg problems --- ext/ereg/ereg.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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; } -- 2.50.1