summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2004-02-24 08:47:35 +0000
committerfoobar <sniper@php.net>2004-02-24 08:47:35 +0000
commitac92c47b84f761c15073eaba572e493b7bfbcee2 (patch)
treed2186421189595665dfce0d0763a00bd4a91614d
parent409c06738f293e43dccf4f6a0454dd74c8af0286 (diff)
downloadphp-git-ac92c47b84f761c15073eaba572e493b7bfbcee2.tar.gz
Fix bug #26005 (Random "cannot change the session ini settings" errors)
-rw-r--r--ext/session/session.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index 301f8c0948..4f1bb11e6e 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -1726,14 +1726,26 @@ PHP_RSHUTDOWN_FUNCTION(session)
}
/* }}} */
+static void php_minit_session_globals(php_ps_globals *ps_globals)
+{
+ ps_globals->save_path = NULL;
+ ps_globals->session_name = NULL;
+ ps_globals->id = NULL;
+ ps_globals->mod = NULL;
+ ps_globals->mod_data = NULL;
+ ps_globals->session_status = php_session_none;
+ ps_globals->http_session_vars = NULL;
+}
PHP_MINIT_FUNCTION(session)
{
#ifdef ZTS
php_ps_globals *ps_globals;
- ts_allocate_id(&ps_globals_id, sizeof(php_ps_globals), NULL, NULL);
+ ts_allocate_id(&ps_globals_id, sizeof(php_ps_globals), (ts_allocate_ctor) php_minit_session_globals, NULL);
ps_globals = ts_resource(ps_globals_id);
+#else
+ php_minit_session_globals(&ps_globals);
#endif
zend_register_auto_global("_SESSION", sizeof("_SESSION")-1, NULL TSRMLS_CC);