]> granicus.if.org Git - php/commitdiff
- Fix bug #37510 session_regenerate_id changes session_id() even on failure
authorMarcus Boerger <helly@php.net>
Thu, 18 May 2006 22:07:31 +0000 (22:07 +0000)
committerMarcus Boerger <helly@php.net>
Thu, 18 May 2006 22:07:31 +0000 (22:07 +0000)
ext/session/session.c

index 194380edffd46d5d5f9b3675ab7da86e18437b7c..3073406deaadfd53488b51f5030ecde0dd475e44 100644 (file)
@@ -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
  */