com php-src: Fixed ext/ereg problems: ext/ereg/ereg.c
| From: | Dmitry Stogov | Date: | Mon, 17 Mar 2014 13:38:15 +0000 |
| Subject: | com php-src: Fixed ext/ereg problems: ext/ereg/ereg.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-77606@lists.php.net to get a copy of this message | ||
Commit: 355b136466ae41eccd25e5a4f1ce16be9c9b9fd9
Author: Dmitry Stogov <dmitry@zend.com> Mon, 17 Mar 2014 17:38:15 +0400
Parents: 62c448ab8b0f38489af4b9c02061506b65b00c91
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=355b136466ae41eccd25e5a4f1ce16be9c9b9fd9
Log:
Fixed ext/ereg problems
Changed paths:
M ext/ereg/ereg.c
Diff:
diff --git a/ext/ereg/ereg.c b/ext/ereg/ereg.c
index c5ad085..45ab9f5 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;
}