Re: PHP 5.0.0 Test roll
| From: | Derrell dot Lipman at UnwiredUniverse dot com | Date: | Tue, 13 Jul 2004 16:23:05 +0000 |
| Subject: | Re: PHP 5.0.0 Test roll | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-11186@lists.php.net to get a copy of this message | ||
"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