Re: PHP 5.0.0 Test roll
| From: | Andi Gutmans | Date: | Tue, 13 Jul 2004 16:28:10 +0000 |
| Subject: | Re: PHP 5.0.0 Test roll | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-11187@lists.php.net to get a copy of this message | ||
Yes, it definitely looks as if ht was freed previously.
At 12:23 PM 7/13/2004 -0400, Derrell.Lipman@UnwiredUniverse.com wrote:
"Rob Richards" <rrichards@ctindustries.net> writes: php5ts_debug.dll!_zend_is_inconsistent(_hashtable * ht=0xcdcdcdcd, char * file=0x1053aaf0, int line=510) Line 53 + 0x3 C php5ts_debug.dll!zend_hash_destroy(_hashtable * ht=0xcdcdcdcd) Line 510 + 0x19 C php5ts_debug.dll!php_shutdown_stream_wrappers(int module_number=0, void * * * tsrm_ls=0x00954278) Line 1379 + 0x12 C php5ts_debug.dll!php_module_shutdown(void * * * tsrm_ls=0x00954278) Line 1516 + 0xd C php5ts_debug.dll!php_module_shutdown(void * * * tsrm_ls=0x00954278) Line 1516 + 0xd C php-cli.exe!main() Line 1052 + 0xd C php-cli.exe!mainCRTStartup() Line 338 + 0x11 C I don't know the internals of PHP, but a hash table parameter of 0xcdcdcdcd looks an awful lot to me like there's a debug malloc library of some sort that fills freed memory with '\xcd', meaning that zend_hash_destroy() is being called with previously freed memory. Since php_shutdown_stream_wrappers() calls zend_hash_destroy() three times, but the first and third call (directly or indirectly) pass a parameter which is simply the address of a variable, my first guess would be that this call: zend_hash_destroy(php_get_stream_filters_hash()) is the culprit, which implicates the variable 'stream_filters" in some way, shape or form (via the function _php_get_stream_filters_hash() in filters.c:41. I hope maybe this helps someone who knows the code determine the problem. I did a cursory search for something pertaining to 0xcd and could not find it, but maybe someone more familiar with the code will recognize 0xcdcdcdcd... Cheers, Derrell