diff options
Diffstat (limited to 'ext/session/session.c')
-rw-r--r-- | ext/session/session.c | 114 |
1 files changed, 57 insertions, 57 deletions
diff --git a/ext/session/session.c b/ext/session/session.c index c3d9fbf1d6..ef17b86bad 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -233,7 +233,7 @@ static int php_session_decode(zend_string *data) /* {{{ */ php_error_docref(NULL, E_WARNING, "Unknown session.serialize_handler. Failed to decode session object"); return FAILURE; } - if (PS(serializer)->decode(data->val, data->len) == FAILURE) { + if (PS(serializer)->decode(ZSTR_VAL(data), ZSTR_LEN(data)) == FAILURE) { php_session_destroy(); php_error_docref(NULL, E_WARNING, "Failed to decode session object. Session has been destroyed"); return FAILURE; @@ -434,7 +434,7 @@ PHPAPI zend_string *php_session_create_id(PS_CREATE_SID_ARGS) /* {{{ */ } outid = zend_string_alloc((digest_len + 2) * ((8.0f / PS(hash_bits_per_character) + 0.5)), 0); - outid->len = (size_t)(bin_to_readable((char *)digest, digest_len, outid->val, (char)PS(hash_bits_per_character)) - (char *)&outid->val); + ZSTR_LEN(outid) = (size_t)(bin_to_readable((char *)digest, digest_len, ZSTR_VAL(outid), (char)PS(hash_bits_per_character)) - (char *)&ZSTR_VAL(outid)); efree(digest); return outid; @@ -556,8 +556,8 @@ static void php_session_save_current_state(int write) /* {{{ */ if (PS(lazy_write) && PS(session_vars) && PS(mod)->s_update_timestamp && PS(mod)->s_update_timestamp != php_session_update_timestamp - && val->len == PS(session_vars)->len - && !memcmp(val->val, PS(session_vars)->val, val->len) + && ZSTR_LEN(val) == ZSTR_LEN(PS(session_vars)) + && !memcmp(ZSTR_VAL(val), ZSTR_VAL(PS(session_vars)), ZSTR_LEN(val)) ) { ret = PS(mod)->s_update_timestamp(&PS(mod_data), PS(id), val, PS(gc_maxlifetime)); } else { @@ -594,7 +594,7 @@ static PHP_INI_MH(OnUpdateSaveHandler) /* {{{ */ ps_module *tmp; SESSION_CHECK_ACTIVE_STATE; - tmp = _php_find_ps_module(new_value->val); + tmp = _php_find_ps_module(ZSTR_VAL(new_value)); if (PG(modules_activated) && !tmp) { int err_type; @@ -607,7 +607,7 @@ static PHP_INI_MH(OnUpdateSaveHandler) /* {{{ */ /* Do not output error when restoring ini options. */ if (stage != ZEND_INI_STAGE_DEACTIVATE) { - php_error_docref(NULL, err_type, "Cannot find save handler '%s'", new_value->val); + php_error_docref(NULL, err_type, "Cannot find save handler '%s'", ZSTR_VAL(new_value)); } return FAILURE; } @@ -624,7 +624,7 @@ static PHP_INI_MH(OnUpdateSerializer) /* {{{ */ const ps_serializer *tmp; SESSION_CHECK_ACTIVE_STATE; - tmp = _php_find_ps_serializer(new_value->val); + tmp = _php_find_ps_serializer(ZSTR_VAL(new_value)); if (PG(modules_activated) && !tmp) { int err_type; @@ -637,7 +637,7 @@ static PHP_INI_MH(OnUpdateSerializer) /* {{{ */ /* Do not output error when restoring ini options. */ if (stage != ZEND_INI_STAGE_DEACTIVATE) { - php_error_docref(NULL, err_type, "Cannot find serialization handler '%s'", new_value->val); + php_error_docref(NULL, err_type, "Cannot find serialization handler '%s'", ZSTR_VAL(new_value)); } return FAILURE; } @@ -651,10 +651,10 @@ static PHP_INI_MH(OnUpdateTransSid) /* {{{ */ { SESSION_CHECK_ACTIVE_STATE; - if (!strncasecmp(new_value->val, "on", sizeof("on"))) { + if (!strncasecmp(ZSTR_VAL(new_value), "on", sizeof("on"))) { PS(use_trans_sid) = (zend_bool) 1; } else { - PS(use_trans_sid) = (zend_bool) atoi(new_value->val); + PS(use_trans_sid) = (zend_bool) atoi(ZSTR_VAL(new_value)); } return SUCCESS; @@ -667,19 +667,19 @@ static PHP_INI_MH(OnUpdateSaveDir) /* {{{ */ if (stage == PHP_INI_STAGE_RUNTIME || stage == PHP_INI_STAGE_HTACCESS) { char *p; - if (memchr(new_value->val, '\0', new_value->len) != NULL) { + if (memchr(ZSTR_VAL(new_value), '\0', ZSTR_LEN(new_value)) != NULL) { return FAILURE; } /* we do not use zend_memrchr() since path can contain ; itself */ - if ((p = strchr(new_value->val, ';'))) { + if ((p = strchr(ZSTR_VAL(new_value), ';'))) { char *p2; p++; if ((p2 = strchr(p, ';'))) { p = p2 + 1; } } else { - p = new_value->val; + p = ZSTR_VAL(new_value); } if (PG(open_basedir) && *p && php_check_open_basedir(p)) { @@ -695,7 +695,7 @@ static PHP_INI_MH(OnUpdateSaveDir) /* {{{ */ static PHP_INI_MH(OnUpdateName) /* {{{ */ { /* Numeric session.name won't work at all */ - if ((!new_value->len || is_numeric_string(new_value->val, new_value->len, NULL, NULL, 0))) { + if ((!ZSTR_LEN(new_value) || is_numeric_string(ZSTR_VAL(new_value), ZSTR_LEN(new_value), NULL, NULL, 0))) { int err_type; if (stage == ZEND_INI_STAGE_RUNTIME || stage == ZEND_INI_STAGE_ACTIVATE || stage == ZEND_INI_STAGE_STARTUP) { @@ -706,7 +706,7 @@ static PHP_INI_MH(OnUpdateName) /* {{{ */ /* Do not output error when restoring ini options. */ if (stage != ZEND_INI_STAGE_DEACTIVATE) { - php_error_docref(NULL, err_type, "session.name cannot be a numeric or empty '%s'", new_value->val); + php_error_docref(NULL, err_type, "session.name cannot be a numeric or empty '%s'", ZSTR_VAL(new_value)); } return FAILURE; } @@ -725,7 +725,7 @@ static PHP_INI_MH(OnUpdateHashFunc) /* {{{ */ PS(hash_ops) = NULL; #endif - val = ZEND_STRTOL(new_value->val, &endptr, 10); + val = ZEND_STRTOL(ZSTR_VAL(new_value), &endptr, 10); if (endptr && (*endptr == '\0')) { /* Numeric value */ PS(hash_func) = val ? 1 : 0; @@ -733,15 +733,15 @@ static PHP_INI_MH(OnUpdateHashFunc) /* {{{ */ return SUCCESS; } - if (new_value->len == (sizeof("md5") - 1) && - strncasecmp(new_value->val, "md5", sizeof("md5") - 1) == 0) { + if (ZSTR_LEN(new_value) == (sizeof("md5") - 1) && + strncasecmp(ZSTR_VAL(new_value), "md5", sizeof("md5") - 1) == 0) { PS(hash_func) = PS_HASH_FUNC_MD5; return SUCCESS; } - if (new_value->len == (sizeof("sha1") - 1) && - strncasecmp(new_value->val, "sha1", sizeof("sha1") - 1) == 0) { + if (ZSTR_LEN(new_value) == (sizeof("sha1") - 1) && + strncasecmp(ZSTR_VAL(new_value), "sha1", sizeof("sha1") - 1) == 0) { PS(hash_func) = PS_HASH_FUNC_SHA1; return SUCCESS; @@ -749,7 +749,7 @@ static PHP_INI_MH(OnUpdateHashFunc) /* {{{ */ #if defined(HAVE_HASH_EXT) && !defined(COMPILE_DL_HASH) /* {{{ */ { - php_hash_ops *ops = (php_hash_ops*)php_hash_fetch_ops(new_value->val, new_value->len); + php_hash_ops *ops = (php_hash_ops*)php_hash_fetch_ops(ZSTR_VAL(new_value), ZSTR_LEN(new_value)); if (ops) { PS(hash_func) = PS_HASH_FUNC_OTHER; @@ -760,7 +760,7 @@ static PHP_INI_MH(OnUpdateHashFunc) /* {{{ */ } #endif /* HAVE_HASH_EXT }}} */ - php_error_docref(NULL, E_WARNING, "session.configuration 'session.hash_function' must be existing hash function. %s does not exist.", new_value->val); + php_error_docref(NULL, E_WARNING, "session.configuration 'session.hash_function' must be existing hash function. %s does not exist.", ZSTR_VAL(new_value)); return FAILURE; } /* }}} */ @@ -768,12 +768,12 @@ static PHP_INI_MH(OnUpdateHashFunc) /* {{{ */ static PHP_INI_MH(OnUpdateRfc1867Freq) /* {{{ */ { int tmp; - tmp = zend_atoi(new_value->val, (int)new_value->len); + tmp = zend_atoi(ZSTR_VAL(new_value), (int)ZSTR_LEN(new_value)); if(tmp < 0) { php_error_docref(NULL, E_WARNING, "session.upload_progress.freq must be greater than or equal to zero"); return FAILURE; } - if(new_value->len > 0 && new_value->val[new_value->len-1] == '%') { + if(ZSTR_LEN(new_value) > 0 && ZSTR_VAL(new_value)[ZSTR_LEN(new_value)-1] == '%') { if(tmp > 100) { php_error_docref(NULL, E_WARNING, "session.upload_progress.freq cannot be over 100%%"); return FAILURE; @@ -895,14 +895,14 @@ PS_SERIALIZER_ENCODE_FUNC(php_binary) /* {{{ */ PHP_VAR_SERIALIZE_INIT(var_hash); PS_ENCODE_LOOP( - if (key->len > PS_BIN_MAX) continue; - smart_str_appendc(&buf, (unsigned char)key->len); - smart_str_appendl(&buf, key->val, key->len); + if (ZSTR_LEN(key) > PS_BIN_MAX) continue; + smart_str_appendc(&buf, (unsigned char)ZSTR_LEN(key)); + smart_str_appendl(&buf, ZSTR_VAL(key), ZSTR_LEN(key)); php_var_serialize(&buf, struc, &var_hash); } else { - if (key->len > PS_BIN_MAX) continue; - smart_str_appendc(&buf, (unsigned char) (key->len & PS_BIN_UNDEF)); - smart_str_appendl(&buf, key->val, key->len); + if (ZSTR_LEN(key) > PS_BIN_MAX) continue; + smart_str_appendc(&buf, (unsigned char) (ZSTR_LEN(key) & PS_BIN_UNDEF)); + smart_str_appendl(&buf, ZSTR_VAL(key), ZSTR_LEN(key)); ); smart_str_0(&buf); @@ -976,8 +976,8 @@ PS_SERIALIZER_ENCODE_FUNC(php) /* {{{ */ PHP_VAR_SERIALIZE_INIT(var_hash); PS_ENCODE_LOOP( - smart_str_appendl(&buf, key->val, key->len); - if (memchr(key->val, PS_DELIMITER, key->len) || memchr(key->val, PS_UNDEF_MARKER, key->len)) { + smart_str_appendl(&buf, ZSTR_VAL(key), ZSTR_LEN(key)); + if (memchr(ZSTR_VAL(key), PS_DELIMITER, ZSTR_LEN(key)) || memchr(ZSTR_VAL(key), PS_UNDEF_MARKER, ZSTR_LEN(key))) { PHP_VAR_SERIALIZE_DESTROY(var_hash); smart_str_free(&buf); return NULL; @@ -987,7 +987,7 @@ PS_SERIALIZER_ENCODE_FUNC(php) /* {{{ */ php_var_serialize(&buf, struc, &var_hash); } else { smart_str_appendc(&buf, PS_UNDEF_MARKER); - smart_str_appendl(&buf, key->val, key->len); + smart_str_appendl(&buf, ZSTR_VAL(key), ZSTR_LEN(key)); smart_str_appendc(&buf, PS_DELIMITER); ); @@ -1299,7 +1299,7 @@ static void php_session_remove_cookie(void) { size_t len = sizeof("Set-Cookie")-1; e_session_name = php_url_encode(PS(session_name), strlen(PS(session_name))); - spprintf(&session_cookie, 0, "Set-Cookie: %s=", e_session_name->val); + spprintf(&session_cookie, 0, "Set-Cookie: %s=", ZSTR_VAL(e_session_name)); zend_string_free(e_session_name); session_cookie_len = strlen(session_cookie); @@ -1348,12 +1348,12 @@ static void php_session_send_cookie(void) /* {{{ */ /* URL encode session_name and id because they might be user supplied */ e_session_name = php_url_encode(PS(session_name), strlen(PS(session_name))); - e_id = php_url_encode(PS(id)->val, PS(id)->len); + e_id = php_url_encode(ZSTR_VAL(PS(id)), ZSTR_LEN(PS(id))); smart_str_appendl(&ncookie, "Set-Cookie: ", sizeof("Set-Cookie: ")-1); - smart_str_appendl(&ncookie, e_session_name->val, e_session_name->len); + smart_str_appendl(&ncookie, ZSTR_VAL(e_session_name), ZSTR_LEN(e_session_name)); smart_str_appendc(&ncookie, '='); - smart_str_appendl(&ncookie, e_id->val, e_id->len); + smart_str_appendl(&ncookie, ZSTR_VAL(e_id), ZSTR_LEN(e_id)); zend_string_release(e_session_name); zend_string_release(e_id); @@ -1368,7 +1368,7 @@ static void php_session_send_cookie(void) /* {{{ */ if (t > 0) { date_fmt = php_format_date("D, d-M-Y H:i:s T", sizeof("D, d-M-Y H:i:s T")-1, t, 0); smart_str_appends(&ncookie, COOKIE_EXPIRES); - smart_str_appendl(&ncookie, date_fmt->val, date_fmt->len); + smart_str_appendl(&ncookie, ZSTR_VAL(date_fmt), ZSTR_LEN(date_fmt)); zend_string_release(date_fmt); smart_str_appends(&ncookie, COOKIE_MAX_AGE); @@ -1399,7 +1399,7 @@ static void php_session_send_cookie(void) /* {{{ */ php_session_remove_cookie(); /* remove already sent session ID cookie */ /* 'replace' must be 0 here, else a previous Set-Cookie header, probably sent with setcookie() will be replaced! */ - sapi_add_header_ex(estrndup(ncookie.s->val, ncookie.s->len), ncookie.s->len, 0, 0); + sapi_add_header_ex(estrndup(ZSTR_VAL(ncookie.s), ZSTR_LEN(ncookie.s)), ZSTR_LEN(ncookie.s), 0, 0); smart_str_free(&ncookie); } /* }}} */ @@ -1471,13 +1471,13 @@ PHPAPI void php_session_reset_id(void) /* {{{ */ smart_str_appends(&var, PS(session_name)); smart_str_appendc(&var, '='); - smart_str_appends(&var, PS(id)->val); + smart_str_appends(&var, ZSTR_VAL(PS(id))); smart_str_0(&var); if (sid) { zend_string_release(Z_STR_P(sid)); ZVAL_NEW_STR(sid, var.s); } else { - REGISTER_STRINGL_CONSTANT("SID", var.s->val, var.s->len, 0); + REGISTER_STRINGL_CONSTANT("SID", ZSTR_VAL(var.s), ZSTR_LEN(var.s), 0); smart_str_free(&var); } } else { @@ -1491,7 +1491,7 @@ PHPAPI void php_session_reset_id(void) /* {{{ */ if (APPLY_TRANS_SID) { /* php_url_scanner_reset_vars(); */ - php_url_scanner_add_var(PS(session_name), strlen(PS(session_name)), PS(id)->val, PS(id)->len, 1); + php_url_scanner_add_var(PS(session_name), strlen(PS(session_name)), ZSTR_VAL(PS(id)), ZSTR_LEN(PS(id)), 1); } } /* }}} */ @@ -1603,7 +1603,7 @@ PHPAPI void php_session_start(void) /* {{{ */ /* Finally check session id for dangerous characters * Security note: session id may be embedded in HTML pages.*/ - if (PS(id) && strpbrk(PS(id)->val, "\r\n\t <>'\"\\")) { + if (PS(id) && strpbrk(ZSTR_VAL(PS(id)), "\r\n\t <>'\"\\")) { zend_string_release(PS(id)); PS(id) = NULL; } @@ -1662,7 +1662,7 @@ static void php_session_reset(void) /* {{{ */ PHPAPI void session_adapt_url(const char *url, size_t urllen, char **new, size_t *newlen) /* {{{ */ { if (APPLY_TRANS_SID && (PS(session_status) == php_session_active)) { - *new = php_url_scanner_adapt_single_url(url, urllen, PS(session_name), PS(id)->val, newlen, 1); + *new = php_url_scanner_adapt_single_url(url, urllen, PS(session_name), ZSTR_VAL(PS(id)), newlen, 1); } } /* }}} */ @@ -1774,8 +1774,8 @@ static PHP_FUNCTION(session_module_name) } if (name) { - if (!_php_find_ps_module(name->val)) { - php_error_docref(NULL, E_WARNING, "Cannot find named PHP session module (%s)", name->val); + if (!_php_find_ps_module(ZSTR_VAL(name))) { + php_error_docref(NULL, E_WARNING, "Cannot find named PHP session module (%s)", ZSTR_VAL(name)); zval_dtor(return_value); RETURN_FALSE; @@ -1961,7 +1961,7 @@ static PHP_FUNCTION(session_save_path) RETVAL_STRING(PS(save_path)); if (name) { - if (memchr(name->val, '\0', name->len) != NULL) { + if (memchr(ZSTR_VAL(name), '\0', ZSTR_LEN(name)) != NULL) { php_error_docref(NULL, E_WARNING, "The save_path cannot contain NULL characters"); zval_dtor(return_value); RETURN_FALSE; @@ -1987,9 +1987,9 @@ static PHP_FUNCTION(session_id) if (PS(id)) { /* keep compatibility for "\0" characters ??? * see: ext/session/tests/session_id_error3.phpt */ - size_t len = strlen(PS(id)->val); - if (UNEXPECTED(len != PS(id)->len)) { - RETVAL_NEW_STR(zend_string_init(PS(id)->val, len, 0)); + size_t len = strlen(ZSTR_VAL(PS(id))); + if (UNEXPECTED(len != ZSTR_LEN(PS(id)))) { + RETVAL_NEW_STR(zend_string_init(ZSTR_VAL(PS(id)), len, 0)); } else { RETVAL_STR_COPY(PS(id)); } @@ -2061,8 +2061,8 @@ static PHP_FUNCTION(session_create_id) return; } - if (prefix && prefix->len) { - if (php_session_valid_key(prefix->val) == FAILURE) { + if (prefix && ZSTR_LEN(prefix)) { + if (php_session_valid_key(ZSTR_VAL(prefix)) == FAILURE) { /* E_ERROR raised for security reason. */ php_error_docref(NULL, E_WARNING, "Prefix cannot contain special characters. Only aphanumeric, ',', '-' are allowed"); RETURN_FALSE; @@ -2202,7 +2202,7 @@ static PHP_FUNCTION(session_start) RETURN_FALSE; } - if (PS(id) && !(PS(id)->len)) { + if (PS(id) && !(ZSTR_LEN(PS(id)))) { php_error_docref(NULL, E_WARNING, "Cannot start session with empty session ID"); RETURN_FALSE; } @@ -2221,13 +2221,13 @@ static PHP_FUNCTION(session_start) } else { zend_string *val = zval_get_string(value); if (php_session_start_set_ini(str_idx, val) == FAILURE) { - php_error_docref(NULL, E_WARNING, "Setting option '%s' failed", str_idx->val); + php_error_docref(NULL, E_WARNING, "Setting option '%s' failed", ZSTR_VAL(str_idx)); } zend_string_release(val); } break; default: - php_error_docref(NULL, E_WARNING, "Option(%s) value must be string, boolean or long", str_idx->val); + php_error_docref(NULL, E_WARNING, "Option(%s) value must be string, boolean or long", ZSTR_VAL(str_idx)); break; } } @@ -2700,7 +2700,7 @@ static PHP_MINFO_FUNCTION(session) /* {{{ */ if (save_handlers.s) { smart_str_0(&save_handlers); - php_info_print_table_row(2, "Registered save handlers", save_handlers.s->val); + php_info_print_table_row(2, "Registered save handlers", ZSTR_VAL(save_handlers.s)); smart_str_free(&save_handlers); } else { php_info_print_table_row(2, "Registered save handlers", "none"); @@ -2708,7 +2708,7 @@ static PHP_MINFO_FUNCTION(session) /* {{{ */ if (ser_handlers.s) { smart_str_0(&ser_handlers); - php_info_print_table_row(2, "Registered serializer handlers", ser_handlers.s->val); + php_info_print_table_row(2, "Registered serializer handlers", ZSTR_VAL(ser_handlers.s)); smart_str_free(&ser_handlers); } else { php_info_print_table_row(2, "Registered serializer handlers", "none"); |