#30050 [Opn->Csd]: php_shutdown_config() [php_ini.c] misses to clean up some pointers

From: 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

« previous php.bugs (#66324) next »