static void php_session_send_cookie(void);
+/* Initialized in MINIT, readonly otherwise. */
+static int my_module_number = 0;
+
/* Dispatched by RINIT and by php_session_destroy */
static inline void php_rinit_session_globals(void) /* {{{ */
{
PS(mod_user_is_open) = 0;
PS(define_sid) = 1;
PS(session_vars) = NULL;
+ PS(module_number) = my_module_number;
ZVAL_UNDEF(&PS(http_session_vars));
}
/* }}} */
zend_register_auto_global(zend_string_init("_SESSION", sizeof("_SESSION") - 1, 1), 0, NULL);
- PS(module_number) = module_number; /* if we really need this var we need to init it in zts mode as well! */
+ my_module_number = module_number;
+ PS(module_number) = module_number;
PS(session_status) = php_session_none;
REGISTER_INI_ENTRIES();
--- /dev/null
+--TEST--
+Bug #74833 Session module number is uninitialized when SID is reset
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ob_start();
+
+session_start();
+session_regenerate_id();
+$c = get_defined_constants(true);
+/* Ensure the SID constant has correct module number. */
+var_dump(isset($c['session']['SID']));
+
+ob_end_flush();
+?>
+==DONE==
+--EXPECTF--
+bool(true)
+==DONE==
+