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)) {
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);
}
}
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);