Bug #17571 Updated: Memory leak in basic globals
| From: | tzikmund at iccc dot cz | Date: | Mon, 03 Jun 2002 10:16:35 +0000 |
| Subject: | Bug #17571 Updated: Memory leak in basic globals | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-9286@lists.php.net to get a copy of this message | ||
ID: 17571
Updated by: tzikmund@iccc.cz
Reported By: tzikmund@iccc.cz
-Status: Feedback
+Status: Open
Bug Type: *General Issues
Operating System: Redhat Linux 7.2
PHP Version: 4.2.1
New Comment:
I've tried the latest CVS version and it seems the problem is still
here.
Previous Comments:
------------------------------------------------------------------------
[2002-06-03 05:21:22] mfischer@php.net
Ops :) Please try with HEAD.
------------------------------------------------------------------------
[2002-06-03 05:18:59] tzikmund@iccc.cz
I'm trying to run PHP in my own multithreaded environment.
Memory leaks are critical for my application.
I've tried to track the leaks down using memprof and I think
I've found a leak in basic globals destructor:
There's original basic globals destructor source
from PHP 4.2.1:
static void basic_globals_dtor(php_basic_globals *basic_globals_p
TSRMLS_DC)
{
zend_hash_destroy(&BG(sm_protected_env_vars));
if (BG(sm_allowed_env_vars)) {
free(BG(sm_allowed_env_vars));
}
#ifdef PHP_WIN32
CoUninitialize();
#endif
}
There's an item called url_adapt_state_ex in the BG array which seems
to
be no deallocated in the destructor.
I've tried following modification:
static void basic_globals_dtor(php_basic_globals *basic_globals_p
TSRMLS_DC)
{
zend_hash_destroy(&BG(sm_protected_env_vars));
if (BG(sm_allowed_env_vars)) {
free(BG(sm_allowed_env_vars));
}
if (BG(url_adapt_state_ex).tags)
{
zend_hash_destroy(BG(url_adapt_state_ex).tags);
free(BG(url_adapt_state_ex).tags);
}
#ifdef PHP_WIN32
CoUninitialize();
#endif
}
I don't know if my modification is clean, but it seems to solve the
problem.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=17571&edit=1