summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoriyoshi Koizumi <moriyoshi@php.net>2003-01-03 05:05:12 +0000
committerMoriyoshi Koizumi <moriyoshi@php.net>2003-01-03 05:05:12 +0000
commitf962ba6abb7e8674db6a936f196ea4491eaef17c (patch)
treefe289dcf5aad6176a5e8a6884924b37cb7e90f34
parent449029d2df9b3ebcff760c8c980a0c34a4457eeb (diff)
downloadphp-git-f962ba6abb7e8674db6a936f196ea4491eaef17c.tar.gz
Fixed small leaks in array_map() in case the first parameter is NULL like
array_map(NULL, array(...));
-rw-r--r--ext/standard/array.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index a3816895a5..774c820eda 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -3418,6 +3418,8 @@ PHP_FUNCTION(array_map)
WRONG_PARAM_COUNT;
}
+ RETVAL_NULL();
+
callback = *args[0];
if (Z_TYPE_P(callback) != IS_NULL) {
if (!zend_is_callable(callback, 0, &callback_name)) {
@@ -3438,6 +3440,7 @@ PHP_FUNCTION(array_map)
if (Z_TYPE_PP(args[i+1]) != IS_ARRAY) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Argument #%d should be an array", i + 2);
efree(array_len);
+ efree(array_pos);
efree(args);
return;
}