summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);