summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuo Ohgaki <yohgaki@php.net>2014-11-06 13:06:29 +0900
committerYasuo Ohgaki <yohgaki@php.net>2014-11-06 13:06:29 +0900
commit4dd3fbfcd28f8a3826361c5c4b7aa4c4da592b22 (patch)
tree1a5cdb80cecbd393a527f803c74047e81a3fe980
parentd4050f42fd89e30a4efb2bda5845dae51e7dc87a (diff)
downloadphp-git-4dd3fbfcd28f8a3826361c5c4b7aa4c4da592b22.tar.gz
Fixed bug #68331 - This was partial patch for https://wiki.php.net/rfc/session-lock-ini
-rw-r--r--ext/session/session.c17
-rw-r--r--ext/session/tests/session_set_save_handler_write_short_circuit.phpt1
2 files changed, 2 insertions, 16 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index d440e6fdd9..edc8f15d5b 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -514,17 +514,8 @@ static void php_session_initialize(TSRMLS_D) /* {{{ */
PS(session_status) = php_session_active;
}
if (val) {
- PHP_MD5_CTX context;
-
- /* Store read data's MD5 hash */
- PHP_MD5Init(&context);
- PHP_MD5Update(&context, val, vallen);
- PHP_MD5Final(PS(session_data_hash), &context);
-
php_session_decode(val, vallen TSRMLS_CC);
str_efree(val);
- } else {
- memset(PS(session_data_hash),'\0', 16);
}
if (!PS(use_cookies) && PS(send_cookie)) {
@@ -554,12 +545,7 @@ static void php_session_save_current_state(TSRMLS_D) /* {{{ */
PHP_MD5Init(&context);
PHP_MD5Update(&context, val, vallen);
PHP_MD5Final(digest, &context);
- /* Write only when save is required */
- if (memcmp(digest, PS(session_data_hash), 16)) {
- ret = PS(mod)->s_write(&PS(mod_data), PS(id), val, vallen TSRMLS_CC);
- } else {
- ret = SUCCESS;
- }
+ ret = PS(mod)->s_write(&PS(mod_data), PS(id), val, vallen TSRMLS_CC);
efree(val);
} else {
ret = PS(mod)->s_write(&PS(mod_data), PS(id), "", 0 TSRMLS_CC);
@@ -1994,7 +1980,6 @@ static PHP_FUNCTION(session_regenerate_id)
RETURN_FALSE;
}
efree(PS(id));
- memset(PS(session_data_hash),'\0', 16);
}
PS(id) = PS(mod)->s_create_sid(&PS(mod_data), NULL TSRMLS_CC);
diff --git a/ext/session/tests/session_set_save_handler_write_short_circuit.phpt b/ext/session/tests/session_set_save_handler_write_short_circuit.phpt
index 02ca182ec6..08da29a8fd 100644
--- a/ext/session/tests/session_set_save_handler_write_short_circuit.phpt
+++ b/ext/session/tests/session_set_save_handler_write_short_circuit.phpt
@@ -5,6 +5,7 @@ session.save_path=
session.name=PHPSESSID
--SKIPIF--
<?php include('skipif.inc'); ?>
+skip - Waiting RFC patch merge
--FILE--
<?php