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

diff --git a/NEWS b/NEWS
index 9ba239a05722fcd3f8bb18b50b23f8bc9dd31b07..7de222656227ed7e778a9e7ea84aac8dfc303039 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -39,6 +39,8 @@ PHP                                                                        NEWS
 - Added pg_field_table() function. (Edin)
 - Added implementation of curl_multi_info_read(). (Brian)
 - Added RFC2397 (data: stream) support. (Marcus)
+- Fixed bug #37510 (session_regenerate_id changes session_id() even on 
+  failure). (Hannes)
 - Fixed bug #37487 (oci_fetch_array() array-type should always default to
   OCI_BOTH). (Tony)
 - Fixed bug #37395 (recursive mkdir() fails to create nonexistent directories 
index a15549c4335f842a137b5e2bc36b31f127a94351..dc7939ea162d30ae8cfb2fce8e42d53027a001c4 100644 (file)
@@ -1475,6 +1475,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) {
@@ -1930,6 +1935,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
  */