diff options
4 files changed, 6 insertions, 25 deletions
diff --git a/ext/session/session.c b/ext/session/session.c index dae965b048..8d112c3a18 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -506,17 +506,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->val, val->len); - PHP_MD5Final(PS(session_data_hash), &context); - php_session_decode(val->val, val->len TSRMLS_CC); zend_string_release(val); - } else { - memset(PS(session_data_hash),'\0', 16); } if (!PS(use_cookies) && PS(send_cookie)) { @@ -538,19 +529,7 @@ static void php_session_save_current_state(TSRMLS_D) /* {{{ */ val = php_session_encode(TSRMLS_C); if (val) { - PHP_MD5_CTX context; - unsigned char digest[16]; - - /* Generate data's MD5 hash */ - PHP_MD5Init(&context); - PHP_MD5Update(&context, val->val, val->len); - 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 TSRMLS_CC); - } else { - ret = SUCCESS; - } + ret = PS(mod)->s_write(&PS(mod_data), PS(id), val TSRMLS_CC); zend_string_release(val); } else { ret = PS(mod)->s_write(&PS(mod_data), PS(id), STR_EMPTY_ALLOC() TSRMLS_CC); @@ -1971,7 +1950,6 @@ static PHP_FUNCTION(session_regenerate_id) RETURN_FALSE; } zend_string_release(PS(id)); - memset(PS(session_data_hash),'\0', 16); } PS(id) = PS(mod)->s_create_sid(&PS(mod_data) TSRMLS_CC); diff --git a/ext/session/tests/session_set_save_handler_iface_003.phpt b/ext/session/tests/session_set_save_handler_iface_003.phpt index bd757dce63..4d7ed3b7ee 100644 --- a/ext/session/tests/session_set_save_handler_iface_003.phpt +++ b/ext/session/tests/session_set_save_handler_iface_003.phpt @@ -38,7 +38,8 @@ class MySession2 implements SessionHandlerInterface, SessionIdInterface { } public function write($id, $data) { - return file_put_contents($this->path . $id, $data); + // Empty $data = 0 = false + return (bool)file_put_contents($this->path . $id, $data); } public function destroy($id) { diff --git a/ext/session/tests/session_set_save_handler_sid_001.phpt b/ext/session/tests/session_set_save_handler_sid_001.phpt index 0dc4fc11cf..24ba5d7489 100644 --- a/ext/session/tests/session_set_save_handler_sid_001.phpt +++ b/ext/session/tests/session_set_save_handler_sid_001.phpt @@ -32,7 +32,8 @@ class MySession2 { } public function write($id, $data) { - return file_put_contents($this->path . $id, $data); + // Empty $data = 0 = false + return (bool)file_put_contents($this->path . $id, $data); } public function destroy($id) { 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 |
