The list is used in order to cleanup any per-request memory leaks (Also in release mode). It's very much needed.
Andi At 13:08 23/03/2002 +0100, Stefan Esser wrote: >Hi, > >currently all memory allocated with emalloc has a >zend_mem_header infront of it. This header contains >the backward and forward pointer and the size of this >block. My question is: is there any need for this >linked list on a production system? I commented the >ADD_POINTER_TO_LIST and REMOVE_POINTER_FROM_LIST >macros out and havent seen any impact (but infact I >only run phpinfo() and some basic scripts). From the >rest of the code the linked list doesn't look used >at all. If this linked list is only for finding >memory leaks etc., we should remove it from the >release. (I did wrap the macro definition with >#if ZEND_DEBUG) > >The reasons for removing are: wasted cpu time and >the danger that comes with those macros. As an example >the bufferoverflow in PHP3 was only exploitable on >most systems because of these 2 macros. With them >removed the overflow would have been exploitable only >on Solaris/Linux and maybe Windows. > >Stefan Esser > > >-- >PHP Development Mailing List <http://www.php.net/> >To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php