#30050 [Opn->Csd]: php_shutdown_config() [php_ini.c] misses to clean up some pointers
| From: | iliaa@php.net | Date: | Fri, 17 Sep 2004 02:49:56 +0000 |
| Subject: | #30050 [Opn->Csd]: php_shutdown_config() [php_ini.c] misses to clean up some pointers | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-66324@lists.php.net to get a copy of this message | ||
ID: 30050
Updated by: iliaa@php.net
Reported By: nw at softwarekombinat dot de
-Status: Open
+Status: Closed
Bug Type: Reproducible crash
Operating System: windows XP
PHP Version: 5.0.1
New Comment:
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
Previous Comments:
------------------------------------------------------------------------
[2004-09-10 14:44:30] nw at softwarekombinat dot de
Description:
------------
Hi there,
executing the following sequence of function calls results
in a segfault in the last php_module_startup(...) call:
tsrm_startup(1, 1, 0, NULL);
sapi_startup(&mf_sapi_module);
php_module_startup(&mf_sapi_module, NULL, 0)
php_module_shutdown( TSRMLS_C );
sapi_shutdown();
tsrm_shutdown();
tsrm_startup(1, 1, 0, NULL);
sapi_startup(&mf_sapi_module);
php_module_startup(&mf_sapi_module, NULL, 0)
I debugged and saw that php_shutdown_config() does not reset global
pointers back to NULL after free()'ing them. This results in another
free()-attempt during next startup.
Here is a modified php_shutdown_config() which solves the problem:
int php_shutdown_config(void)
{
zend_hash_destroy(&configuration_hash);
if (php_ini_opened_path) {
free(php_ini_opened_path);
php_ini_opened_path = NULL; /* BUGFIX */
}
if (php_ini_scanned_files) {
free(php_ini_scanned_files);
php_ini_scanned_files = NULL; /* BUGFIX */
}
return SUCCESS;
}
Sorry that I don't submit a patch myself - no time, currently....
Regards,
Norbert
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=30050&edit=1