svn: /php/php-src/ branches/PHP_5_4/Zend/tests/bug55705.phpt branches/PHP_5_4/Zend/zend_execute.c trunk/Zend/tests/bug55705.phpt
trunk/Zend/zend_execute.c

From: Date: Sat, 17 Sep 2011 00:16:11 +0000
Subject: svn: /php/php-src/ branches/PHP_5_4/Zend/tests/bug55705.phpt branches/PHP_5_4/Zend/zend_execute.c trunk/Zend/tests/bug55705.phpt
trunk/Zend/zend_execute.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-66576@lists.php.net to get a copy of this message
felipe Sat, 17 Sep 2011 00:16:11 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=316887 Log: - Fixed bug #55705 (Omitting a callable typehinted argument causes a segfault) patch by: laruence@php Bug: https://bugs.php.net/55705 (Assigned) Omitting a callable typehinted argument causes a segfault Changed paths: A php/php-src/branches/PHP_5_4/Zend/tests/bug55705.phpt U php/php-src/branches/PHP_5_4/Zend/zend_execute.c A php/php-src/trunk/Zend/tests/bug55705.phpt U php/php-src/trunk/Zend/zend_execute.c Added: php/php-src/branches/PHP_5_4/Zend/tests/bug55705.phpt =================================================================== --- php/php-src/branches/PHP_5_4/Zend/tests/bug55705.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/Zend/tests/bug55705.phpt 2011-09-17 00:16:11 UTC (rev 316887) @@ -0,0 +1,9 @@ +--TEST-- +Bug #55705 (Omitting a callable typehinted argument causes a segfault) +--FILE-- +<?php +function f(callable $c) {} +f(); +?> +--EXPECTF-- +Catchable fatal error: Argument 1 passed to f() must be callable, none given, called in %s on line 3 and defined in %s on line %d Modified: php/php-src/branches/PHP_5_4/Zend/zend_execute.c =================================================================== --- php/php-src/branches/PHP_5_4/Zend/zend_execute.c 2011-09-17 00:05:31 UTC (rev 316886) +++ php/php-src/branches/PHP_5_4/Zend/zend_execute.c 2011-09-17 00:16:11 UTC (rev 316887) @@ -639,6 +639,9 @@ break; case IS_CALLABLE: + if (!arg) { + return zend_verify_arg_error(E_RECOVERABLE_ERROR, zf, arg_num, "be callable", "", "none", "" TSRMLS_CC); + } if (!zend_is_callable(arg, IS_CALLABLE_CHECK_SILENT, NULL TSRMLS_CC) && (Z_TYPE_P(arg) != IS_NULL || !cur_arg_info->allow_null)) { return zend_verify_arg_error(E_RECOVERABLE_ERROR, zf, arg_num, "be callable", "", zend_zval_type_name(arg), "" TSRMLS_CC); } Added: php/php-src/trunk/Zend/tests/bug55705.phpt =================================================================== --- php/php-src/trunk/Zend/tests/bug55705.phpt (rev 0) +++ php/php-src/trunk/Zend/tests/bug55705.phpt 2011-09-17 00:16:11 UTC (rev 316887) @@ -0,0 +1,9 @@ +--TEST-- +Bug #55705 (Omitting a callable typehinted argument causes a segfault) +--FILE-- +<?php +function f(callable $c) {} +f(); +?> +--EXPECTF-- +Catchable fatal error: Argument 1 passed to f() must be callable, none given, called in %s on line 3 and defined in %s on line %d Modified: php/php-src/trunk/Zend/zend_execute.c =================================================================== --- php/php-src/trunk/Zend/zend_execute.c 2011-09-17 00:05:31 UTC (rev 316886) +++ php/php-src/trunk/Zend/zend_execute.c 2011-09-17 00:16:11 UTC (rev 316887) @@ -639,6 +639,9 @@ break; case IS_CALLABLE: + if (!arg) { + return zend_verify_arg_error(E_RECOVERABLE_ERROR, zf, arg_num, "be callable", "", "none", "" TSRMLS_CC); + } if (!zend_is_callable(arg, IS_CALLABLE_CHECK_SILENT, NULL TSRMLS_CC) && (Z_TYPE_P(arg) != IS_NULL || !cur_arg_info->allow_null)) { return zend_verify_arg_error(E_RECOVERABLE_ERROR, zf, arg_num, "be callable", "", zend_zval_type_name(arg), "" TSRMLS_CC); }

« previous php.cvs (#66576) next »