]> granicus.if.org Git - php/commitdiff
Fix bug #26005 (Random "cannot change the session ini settings" errors)
authorfoobar <sniper@php.net>
Tue, 24 Feb 2004 08:47:35 +0000 (08:47 +0000)
committerfoobar <sniper@php.net>
Tue, 24 Feb 2004 08:47:35 +0000 (08:47 +0000)
ext/session/session.c

index 301f8c094808fbf8834b11ccf2a1e70ce7e5edc5..4f1bb11e6eff22c2480e651de4e284215cc9f765 100644 (file)
@@ -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);