From ef600a05a56596a24bc52865bcb9209e105f87cc Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 28 Jun 2009 01:16:36 +0000 Subject: [PATCH] - MFH: Fixed bug #48693 (Double declaration of __lambda_func when lambda wrongly formatted) --- NEWS | 2 ++ Zend/tests/bug48693.phpt | 28 ++++++++++++++++++++++++++++ Zend/zend_builtin_functions.c | 1 + 3 files changed, 31 insertions(+) create mode 100644 Zend/tests/bug48693.phpt diff --git a/NEWS b/NEWS index eed220fa75..b20f2b6ce7 100644 --- a/NEWS +++ b/NEWS @@ -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-- + +--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; } } -- 2.40.0