felipe Tue, 22 Nov 2011 12:47:08 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=319677
Log: - Fixed invalid free in call_user_method() function Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/standard/basic_functions.c A php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/call_user_method_002.phpt U php/php-src/branches/PHP_5_4/NEWS U php/php-src/branches/PHP_5_4/ext/standard/basic_functions.c A php/php-src/branches/PHP_5_4/ext/standard/tests/general_functions/call_user_method_002.phpt U php/php-src/trunk/ext/standard/basic_functions.c A php/php-src/trunk/ext/standard/tests/general_functions/call_user_method_002.phpt Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2011-11-22 12:29:15 UTC (rev 319676) +++ php/php-src/branches/PHP_5_3/NEWS 2011-11-22 12:47:08 UTC (rev 319677) @@ -10,6 +10,7 @@ (klightspeed at netspace dot net dot au) . Fixed bug #52624 (tempnam() by-pass open_basedir with nonnexistent directory). (Felipe) + . Fixed invalid free in call_user_method() function. (Felipe) - Zend Engine: . Fixed bug #43200 (Interface implementation / inheritence not possible in Modified: php/php-src/branches/PHP_5_3/ext/standard/basic_functions.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/basic_functions.c 2011-11-22 12:29:15 UTC (rev 319676) +++ php/php-src/branches/PHP_5_3/ext/standard/basic_functions.c 2011-11-22 12:47:08 UTC (rev 319677) @@ -4825,7 +4825,9 @@ Z_TYPE_P(object) != IS_STRING ) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Second argument is not an object or class name"); - efree(params); + if (params) { + efree(params); + } RETURN_FALSE; } Added: php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/call_user_method_002.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/call_user_method_002.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/general_functions/call_user_method_002.phpt 2011-11-22 12:47:08 UTC (rev 319677) @@ -0,0 +1,12 @@ +--TEST-- +call_user_method() Invalid free +--FILE-- +<?php + +call_user_method("1", $arr1); + +?> +--EXPECTF-- +Deprecated: Function call_user_method() is deprecated in %s on line %d + +Warning: call_user_method(): Second argument is not an object or class name in %s on line %d Modified: php/php-src/branches/PHP_5_4/NEWS =================================================================== --- php/php-src/branches/PHP_5_4/NEWS 2011-11-22 12:29:15 UTC (rev 319676) +++ php/php-src/branches/PHP_5_4/NEWS 2011-11-22 12:47:08 UTC (rev 319677) @@ -12,6 +12,7 @@ directory). (Felipe) . Fixed bug #55748 (multiple NULL Pointer Dereference with zend_strndup()) (CVE-2011-4153). (Stas) + . Fixed invalid free in call_user_method() function. (Felipe) - Zend Engine: . Fixed bug #43200 (Interface implementation / inheritence not possible in Modified: php/php-src/branches/PHP_5_4/ext/standard/basic_functions.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/standard/basic_functions.c 2011-11-22 12:29:15 UTC (rev 319676) +++ php/php-src/branches/PHP_5_4/ext/standard/basic_functions.c 2011-11-22 12:47:08 UTC (rev 319677) @@ -4762,7 +4762,9 @@ Z_TYPE_P(object) != IS_STRING ) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Second argument is not an object or class name"); - efree(params); + if (params) { + efree(params); + } RETURN_FALSE; } Added: php/php-src/branches/PHP_5_4/ext/standard/tests/general_functions/call_user_method_002.phpt =================================================================== --- php/php-src/branches/PHP_5_4/ext/standard/tests/general_functions/call_user_method_002.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/ext/standard/tests/general_functions/call_user_method_002.phpt 2011-11-22 12:47:08 UTC (rev 319677) @@ -0,0 +1,12 @@ +--TEST-- +call_user_method() Invalid free +--FILE-- +<?php + +call_user_method("1", $arr1); + +?> +--EXPECTF-- +Deprecated: Function call_user_method() is deprecated in %s on line %d + +Warning: call_user_method(): Second argument is not an object or class name in %s on line %d Modified: php/php-src/trunk/ext/standard/basic_functions.c =================================================================== --- php/php-src/trunk/ext/standard/basic_functions.c 2011-11-22 12:29:15 UTC (rev 319676) +++ php/php-src/trunk/ext/standard/basic_functions.c 2011-11-22 12:47:08 UTC (rev 319677) @@ -4797,7 +4797,9 @@ Z_TYPE_P(object) != IS_STRING ) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Second argument is not an object or class name"); - efree(params); + if (params) { + efree(params); + } RETURN_FALSE; } Added: php/php-src/trunk/ext/standard/tests/general_functions/call_user_method_002.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/general_functions/call_user_method_002.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/general_functions/call_user_method_002.phpt 2011-11-22 12:47:08 UTC (rev 319677) @@ -0,0 +1,12 @@ +--TEST-- +call_user_method() Invalid free +--FILE-- +<?php + +call_user_method("1", $arr1); + +?> +--EXPECTF-- +Deprecated: Function call_user_method() is deprecated in %s on line %d + +Warning: call_user_method(): Second argument is not an object or class name in %s on line %d
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php