summaryrefslogtreecommitdiff
path: root/Zend/zend_opcode.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-03-05 18:16:39 +0800
committerXinchen Hui <laruence@php.net>2015-03-05 18:39:50 +0800
commitf039225597b51f2ee02a050391d497ae68d63b39 (patch)
tree9cb4427f51218a5d5e8ffaa8010f85edb039063a /Zend/zend_opcode.c
parent837eeefee9e01156b364a4b0e9cff8d9f0a1a1d5 (diff)
downloadphp-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.c7
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++;
}