From: Marcus Boerger Date: Thu, 18 May 2006 22:12:26 +0000 (+0000) Subject: - MFH Fix bug #37510 session_regenerate_id changes session_id() even on failure X-Git-Tag: php-5.2.0RC1~517 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aa0172a4da0df0c36d2ff4e83eace0df5f3a63d9;p=php - MFH Fix bug #37510 session_regenerate_id changes session_id() even on failure --- diff --git a/NEWS b/NEWS index 9ba239a057..7de2226562 100644 --- 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 diff --git a/ext/session/session.c b/ext/session/session.c index a15549c433..dc7939ea16 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -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 */