diff options
author | Felipe Pena <felipe@php.net> | 2009-06-28 01:16:36 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2009-06-28 01:16:36 +0000 |
commit | ef600a05a56596a24bc52865bcb9209e105f87cc (patch) | |
tree | 3f490e84de997de0b9dbdfa76089229aab879d26 | |
parent | c4e0f38aa790d7990b48f0ee904294b1fda17f12 (diff) | |
download | php-git-ef600a05a56596a24bc52865bcb9209e105f87cc.tar.gz |
- MFH: Fixed bug #48693 (Double declaration of __lambda_func when lambda wrongly formatted)
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | Zend/tests/bug48693.phpt | 28 | ||||
-rw-r--r-- | Zend/zend_builtin_functions.c | 1 |
3 files changed, 31 insertions, 0 deletions
@@ -1,6 +1,8 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2009, PHP 5.2.11 +- Fixed bug #48693 (Double declaration of __lambda_func when lambda wrongly + formatted). (peter at lvp-media dot com, Felipe) - Fixed bug #48661 (phpize is broken with non-bash shells). (Jani) - Fixed bug #48636 (Error compiling of ext/date on netware). (guenter at php.net, Ilia) diff --git a/Zend/tests/bug48693.phpt b/Zend/tests/bug48693.phpt new file mode 100644 index 0000000000..e574346029 --- /dev/null +++ b/Zend/tests/bug48693.phpt @@ -0,0 +1,28 @@ +--TEST-- +Bug #48693 (Double declaration of __lambda_func when lambda wrongly formatted) +--FILE-- +<?php + +$x = create_function('', 'return 1; }'); +$y = create_function('', 'function a() { }; return 2;'); +$z = create_function('', '{'); +$w = create_function('', 'return 3;'); + +var_dump( + $x, + $y(), + $z, + $w(), + $y != $z +); + +?> +--EXPECTF-- +Parse error: syntax error, unexpected '}' in %s(%d) : runtime-created function on line 1 + +Parse error: syntax error, unexpected $end in %s(%d) : runtime-created function on line 1 +bool(false) +int(2) +bool(false) +int(3) +bool(true) diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 185fb361c4..25cb220ea5 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -1516,6 +1516,7 @@ ZEND_FUNCTION(create_function) zend_hash_del(EG(function_table), LAMBDA_TEMP_FUNCNAME, sizeof(LAMBDA_TEMP_FUNCNAME)); RETURN_STRINGL(function_name, function_name_length, 0); } else { + zend_hash_del(EG(function_table), LAMBDA_TEMP_FUNCNAME, sizeof(LAMBDA_TEMP_FUNCNAME)); RETURN_FALSE; } } |