summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2006-05-18 22:07:31 +0000
committerMarcus Boerger <helly@php.net>2006-05-18 22:07:31 +0000
commita4471f70f08a09cc80dcc7ebed7c80a69725f5dc (patch)
treeb54627ccb5568cff6fb237e0e2b787a6e6b95b27
parentfbb48b6f2681a16c656c2d03cdbaf2cb6b15d8dd (diff)
downloadphp-git-a4471f70f08a09cc80dcc7ebed7c80a69725f5dc.tar.gz
- Fix bug #37510 session_regenerate_id changes session_id() even on failure
-rw-r--r--ext/session/session.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index 194380edff..3073406dea 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -1364,6 +1364,11 @@ PHP_FUNCTION(session_regenerate_id)
WRONG_PARAM_COUNT;
}
+ if (SG(headers_sent)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot regenerate session id - headers already sent");
+ RETURN_FALSE;
+ }
+
if (PS(session_status) == php_session_active) {
if (PS(id)) {
if (del_ses && PS(mod)->s_destroy(&PS(mod_data), PS(id) TSRMLS_CC) == FAILURE) {
@@ -1720,6 +1725,6 @@ PHP_MINFO_FUNCTION(session)
* tab-width: 4
* c-basic-offset: 4
* End:
- * vim600: sw=4 ts=4 fdm=marker
+ * vim600: noet sw=4 ts=4 fdm=marker
* vim<600: sw=4 ts=4
*/