Hello Andi,

without looking at the code i guessed iterators needed both, destruction
and cleaning. But unfortunatley i fear i cannot look into it until
wednesday. So i took a few mins right now and i'd say you should commit
Rob's patch which seems correct.

regards
marcus

Sunday, February 8, 2004, 6:08:47 PM, you wrote:

> I submitted the patch for checking free_storage != NULL.
> Marcus, will have to look into SPL and see if dtor is more suitable than 
> free_storage.

> Andi

> At 11:39 AM 2/8/2004 -0500, Rob Richards wrote:
>>It appears that the zend iterators need to go back to using the dtor
>>callback rather than free storage.
>>throwing an unhandled exception in any of the iterator foreach loops in SPL,
>>SXE and DOM results in a segfault due to improper cleanup.
>>
>>To reproduce, put a throw new exception within one of the foreach calls in
>>limititerator or array_iterator from the SPL tests.
>>
>>Registering dtor instead of a free storage callback in zend_iterator_wrap
>>seems to let the iterator objects cleanup properly.
>>Also in zend_objects_store_del_ref, free_storage is never tested so if an
>>object doesn't implement this, it causes a segfault.
>>
>>Patch attached.
>>
>>Rob
>>
>>--
>>PHP Internals - PHP Runtime Development Mailing List
>>To unsubscribe, visit: http://www.php.net/unsub.php




-- 
Best regards,
 Marcus                            mailto:[EMAIL PROTECTED]

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to