]> granicus.if.org Git - php/commitdiff
Free memory if destructor wasn't called
authorDmitry Stogov <dmitry@zend.com>
Tue, 10 Mar 2015 21:57:28 +0000 (00:57 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 10 Mar 2015 21:57:28 +0000 (00:57 +0300)
ext/spl/spl_iterators.c

index 21b3c8c905cf60dba41b4b7d16bdfc408f0c96ff..f0ce313eb6c8832ea19278cf0cc2a44e60f2e3f9 100644 (file)
@@ -931,6 +931,11 @@ static void spl_RecursiveIteratorIterator_free_storage(zend_object *_object)
 {
        spl_recursive_it_object *object = spl_recursive_it_from_obj(_object);
 
+       if (object->iterators) {
+               efree(object->iterators);
+               object->iterators = NULL;
+       }
+
        zend_object_std_dtor(&object->std);
        smart_str_free(&object->prefix[0]);
        smart_str_free(&object->prefix[1]);