]> granicus.if.org Git - php/commitdiff
Fixed small leaks in array_map() in case the first parameter is NULL like
authorMoriyoshi Koizumi <moriyoshi@php.net>
Fri, 3 Jan 2003 05:05:12 +0000 (05:05 +0000)
committerMoriyoshi Koizumi <moriyoshi@php.net>
Fri, 3 Jan 2003 05:05:12 +0000 (05:05 +0000)
array_map(NULL, array(...));

ext/standard/array.c

index a3816895a594026ed889f2e2c7239723393a7276..774c820eda07a8bc4e5f604b3e0ae9bf15fc4065 100644 (file)
@@ -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;
                }