com php-src: Merge branch 'PHP-5.6': ext/session/session.c ext/session/tests/session_set_save_handler_iface_0 03.phpt
ext/session/tests/session_set_save_handle r_sid_001.phpt
| From: | Yasuo Ohgaki | Date: | Thu, 06 Nov 2014 04:49:43 +0000 |
| Subject: | com php-src: Merge branch 'PHP-5.6': ext/session/session.c ext/session/tests/session_set_save_handler_iface_0 03.phpt ext/session/tests/session_set_save_handle r_sid_001.phpt |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-82951@lists.php.net to get a copy of this message | ||
Commit: 6b8328de740ce0bc116f322be5193b6b7b83927f
Author: Yasuo Ohgaki <yohgaki@php.net> Thu, 6 Nov 2014 13:49:43 +0900
Parents: 4b8cc567cd6a0c8717bf24f5f1abc2a34b711462 4dd3fbfcd28f8a3826361c5c4b7aa4c4da592b22
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=6b8328de740ce0bc116f322be5193b6b7b83927f
Log:
Merge branch 'PHP-5.6'
* PHP-5.6:
Fixed bug #68331 - This was partial patch for https://wiki.php.net/rfc/session-lock-ini
Fixed 2 tests that expects bool retrun value from save handler.
Conflicts:
ext/session/session.c
Bugs:
https://bugs.php.net/68331
Changed paths:
MM ext/session/session.c
MM ext/session/tests/session_set_save_handler_iface_003.phpt
MM ext/session/tests/session_set_save_handler_sid_001.phpt
Diff:
diff --cc ext/session/session.c
index dae965b,edc8f15..8d112c3
--- a/ext/session/session.c
+++ b/ext/session/session..c
@@@ -506,17 -514,8 +506,8 @@@ static void php_session_initialize(TSRM
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, vallen TSRMLS_CC);
- str_efree(val);
+ 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)) {
@@@ -534,26 -533,22 +525,14 @@@ static void php_session_save_current_st
IF_SESSION_VARS() {
if (PS(mod_data) || PS(mod_user_implemented)) {
- char *val;
- int vallen;
+ zend_string *val;
- val = php_session_encode(&vallen TSRMLS_CC);
+ 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_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 TSRMLS_CC);
- } else {
- ret = SUCCESS;
- }
- ret = PS(mod)->s_write(&PS(mod_data), PS(id), val, vallen TSRMLS_CC);
- efree(val);
++ 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), "", 0 TSRMLS_CC);
+ ret = PS(mod)->s_write(&PS(mod_data), PS(id), STR_EMPTY_ALLOC() TSRMLS_CC);
}
}
@@@ -1970,11 -1979,10 +1949,10 @@@ static PHP_FUNCTION(session_regenerate_
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Session object destruction failed");
RETURN_FALSE;
}
- efree(PS(id));
+ zend_string_release(PS(id));
- memset(PS(session_data_hash),'\0', 16);
}
- PS(id) = PS(mod)->s_create_sid(&PS(mod_data), NULL TSRMLS_CC);
+ PS(id) = PS(mod)->s_create_sid(&PS(mod_data) TSRMLS_CC);
if (PS(id)) {
PS(send_cookie) = 1;
php_session_reset_id(TSRMLS_C);
diff --cc ext/session/tests/session_set_save_handler_iface_003.phpt
index bd757dc,bd757dc..4d7ed3b
--- 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,7 +38,8 @@@ class MySession2 implements SessionHand
}
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 --cc ext/session/tests/session_set_save_handler_sid_001.phpt
index 0dc4fc1,0dc4fc1..24ba5d7
--- 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,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) {