diff options
author | Xinchen Hui <laruence@php.net> | 2015-03-05 18:16:39 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2015-03-05 18:39:50 +0800 |
commit | f039225597b51f2ee02a050391d497ae68d63b39 (patch) | |
tree | 9cb4427f51218a5d5e8ffaa8010f85edb039063a /Zend/zend_opcode.c | |
parent | 837eeefee9e01156b364a4b0e9cff8d9f0a1a1d5 (diff) | |
download | php-git-f039225597b51f2ee02a050391d497ae68d63b39.tar.gz |
Fixed bug #69174 (leaks when unused inner class use traits precedence)
Diffstat (limited to 'Zend/zend_opcode.c')
-rw-r--r-- | Zend/zend_opcode.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index e03cf3073e..b8e850d629 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -256,9 +256,14 @@ void _destroy_zend_class_traits_info(zend_class_entry *ce) efree(ce->trait_precedences[i]->trait_method); if (ce->trait_precedences[i]->exclude_from_classes) { + zend_uint j = 0; + zend_trait_precedence *cur_precedence = ce->trait_precedences[i]; + while (cur_precedence->exclude_from_classes[j]) { + efree(cur_precedence->exclude_from_classes[j]); + j++; + } efree(ce->trait_precedences[i]->exclude_from_classes); } - efree(ce->trait_precedences[i]); i++; } |