mirror of
https://github.com/php/php-src.git
synced 2024-11-24 10:24:11 +08:00
MFH: fix #38653 (memory leak in ReflectionClass::getConstant())
This commit is contained in:
parent
d6ec9d21ec
commit
86bf55a3d8
1
NEWS
1
NEWS
@ -5,6 +5,7 @@ PHP NEWS
|
||||
SoapServer::setClass() method). (Dmitry)
|
||||
- Added support for hexadecimal entity in imagettftext() for the bundled GD.
|
||||
(Pierre)
|
||||
- Fixed bug #38653 (memory leak in ReflectionClass::getConstant()). (Tony)
|
||||
- Fixed bug #38637 (curl_copy_handle() fails to fully copy the cURL handle).
|
||||
(Tony, Ilia)
|
||||
- Fixed bug #38624 (Strange warning when incrementing an object property and
|
||||
|
@ -211,6 +211,7 @@ static void _default_get_entry(zval *object, char *name, int name_len, zval *ret
|
||||
|
||||
*return_value = **value;
|
||||
zval_copy_ctor(return_value);
|
||||
INIT_PZVAL(return_value);
|
||||
}
|
||||
|
||||
static void reflection_register_implement(zend_class_entry *class_entry, zend_class_entry *interface_entry TSRMLS_DC)
|
||||
@ -3224,6 +3225,7 @@ ZEND_METHOD(reflection_class, getConstant)
|
||||
}
|
||||
*return_value = **value;
|
||||
zval_copy_ctor(return_value);
|
||||
INIT_PZVAL(return_value);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
28
ext/reflection/tests/bug38653.phpt
Normal file
28
ext/reflection/tests/bug38653.phpt
Normal file
@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Bug #38653 (memory leak in ReflectionClass::getConstant())
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class foo {
|
||||
const cons = 10;
|
||||
const cons1 = "";
|
||||
const cons2 = "test";
|
||||
}
|
||||
|
||||
class bar extends foo {
|
||||
}
|
||||
|
||||
$foo = new ReflectionClass("foo");
|
||||
var_dump($foo->getConstant("cons"));
|
||||
var_dump($foo->getConstant("cons1"));
|
||||
var_dump($foo->getConstant("cons2"));
|
||||
var_dump($foo->getConstant("no such const"));
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
int(10)
|
||||
string(0) ""
|
||||
string(4) "test"
|
||||
bool(false)
|
||||
Done
|
Loading…
Reference in New Issue
Block a user