diff options
| author | Stanislav Malyshev <stas@php.net> | 2003-07-27 12:03:54 +0000 |
|---|---|---|
| committer | Stanislav Malyshev <stas@php.net> | 2003-07-27 12:03:54 +0000 |
| commit | 5724c7a66c49ba7f42f3f2b91f3196977f016ac0 (patch) | |
| tree | 4de9766d7ca394f094974869d7af6b45728d98d9 /Zend/zend_compile.c | |
| parent | 78f8ca6e5564dc1335b2019c2518dab38cdb78ea (diff) | |
| download | php-git-5724c7a66c49ba7f42f3f2b91f3196977f016ac0.tar.gz | |
fix leaks with class constants (bug #24699)
Diffstat (limited to 'Zend/zend_compile.c')
| -rw-r--r-- | Zend/zend_compile.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 1c9f1f8314..8d1aa3d945 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -2513,6 +2513,7 @@ void zend_do_fold_constant(znode *result, znode *constant_name TSRMLS_DC) if (zend_hash_find(&CG(active_class_entry)->constants_table, constant_name->u.constant.value.str.val, constant_name->u.constant.value.str.len+1, (void **) &zresult) != SUCCESS) { if (zend_get_constant(constant_name->u.constant.value.str.val, constant_name->u.constant.value.str.len, &result->u.constant TSRMLS_CC)) { + zval_dtor(&constant_name->u.constant); return; } else { zend_error(E_COMPILE_ERROR, "Cannot find %s constant in class %s\n", @@ -2522,6 +2523,7 @@ void zend_do_fold_constant(znode *result, znode *constant_name TSRMLS_DC) result->u.constant = **zresult; zval_copy_ctor(&result->u.constant); + zval_dtor(&constant_name->u.constant); } void zend_do_fetch_constant(znode *result, znode *constant_container, znode *constant_name, int mode TSRMLS_DC) |
