diff options
author | Dmitry Stogov <dmitry@zend.com> | 2018-06-29 00:19:16 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2018-06-29 00:19:16 +0300 |
commit | dd932f7e634f0ad621cf1118cabef42570059b5e (patch) | |
tree | 2d2fdd0ff62e505bbce2be59c475fa4a2c392e92 | |
parent | a7101415cb19ec01aacaa0ababb88d02c6a1631d (diff) | |
download | php-git-dd932f7e634f0ad621cf1118cabef42570059b5e.tar.gz |
Changed php_add[c]slashes prototypes (removed should_free argument)
-rw-r--r-- | ext/filter/sanitizing_filters.c | 2 | ||||
-rw-r--r-- | ext/pdo_pgsql/pgsql_driver.c | 4 | ||||
-rw-r--r-- | ext/standard/php_string.h | 7 | ||||
-rw-r--r-- | ext/standard/streamsfuncs.c | 2 | ||||
-rw-r--r-- | ext/standard/string.c | 59 | ||||
-rw-r--r-- | ext/standard/var.c | 6 | ||||
-rw-r--r-- | sapi/phpdbg/phpdbg_bp.c | 6 | ||||
-rw-r--r-- | sapi/phpdbg/phpdbg_utils.c | 2 |
8 files changed, 39 insertions, 49 deletions
diff --git a/ext/filter/sanitizing_filters.c b/ext/filter/sanitizing_filters.c index a84c44d4cf..8682e31994 100644 --- a/ext/filter/sanitizing_filters.c +++ b/ext/filter/sanitizing_filters.c @@ -374,7 +374,7 @@ void php_filter_magic_quotes(PHP_INPUT_FILTER_PARAM_DECL) zend_string *buf; /* just call php_addslashes quotes */ - buf = php_addslashes(Z_STR_P(value), 0); + buf = php_addslashes(Z_STR_P(value)); zval_ptr_dtor(value); ZVAL_STR(value, buf); diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c index 4c067b3092..125c58350d 100644 --- a/ext/pdo_pgsql/pgsql_driver.c +++ b/ext/pdo_pgsql/pgsql_driver.c @@ -66,9 +66,7 @@ static char * _pdo_pgsql_trim_message(const char *message, int persistent) static zend_string* _pdo_pgsql_escape_credentials(char *str) { if (str) { - zend_string *tmp = zend_string_init(str, strlen(str), 0); - - return php_addcslashes(tmp, 1, "\\'", sizeof("\\'")); + return php_addcslashes_str(str, strlen(str), "\\'", sizeof("\\'")); } return NULL; diff --git a/ext/standard/php_string.h b/ext/standard/php_string.h index fe6fce13e1..780b8e6f13 100644 --- a/ext/standard/php_string.h +++ b/ext/standard/php_string.h @@ -127,13 +127,14 @@ PHPAPI zend_string *php_string_toupper(zend_string *s); PHPAPI zend_string *php_string_tolower(zend_string *s); PHPAPI char *php_strtr(char *str, size_t len, const char *str_from, const char *str_to, size_t trlen); #if ZEND_INTRIN_SSE4_2_FUNC_PTR -PHPAPI extern zend_string *(*php_addslashes)(zend_string *str, int should_free); +PHPAPI extern zend_string *(*php_addslashes)(zend_string *str); PHPAPI extern void (*php_stripslashes)(zend_string *str); #else -PHPAPI zend_string *php_addslashes(zend_string *str, int should_free); +PHPAPI zend_string *php_addslashes(zend_string *str); PHPAPI void php_stripslashes(zend_string *str); #endif -PHPAPI zend_string *php_addcslashes(zend_string *str, int freeit, char *what, size_t what_len); +PHPAPI zend_string *php_addcslashes_str(const char *str, size_t len, char *what, size_t what_len); +PHPAPI zend_string *php_addcslashes(zend_string *str, char *what, size_t what_len); PHPAPI void php_stripcslashes(zend_string *str); PHPAPI zend_string *php_basename(const char *s, size_t len, char *suffix, size_t sufflen); PHPAPI size_t php_dirname(char *str, size_t len); diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index 7f717c4b08..391a379b4c 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -148,7 +148,7 @@ PHP_FUNCTION(stream_socket_client) if (stream == NULL) { /* host might contain binary characters */ - zend_string *quoted_host = php_addslashes(host, 0); + zend_string *quoted_host = php_addslashes(host); php_error_docref(NULL, E_WARNING, "unable to connect to %s (%s)", ZSTR_VAL(quoted_host), errstr == NULL ? "Unknown error" : ZSTR_VAL(errstr)); zend_string_release_ex(quoted_host, 0); diff --git a/ext/standard/string.c b/ext/standard/string.c index ca432c76d6..cbea7449b0 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -3670,7 +3670,7 @@ PHP_FUNCTION(addcslashes) RETURN_STR_COPY(str); } - RETURN_STR(php_addcslashes(str, 0, ZSTR_VAL(what), ZSTR_LEN(what))); + RETURN_STR(php_addcslashes_str(ZSTR_VAL(str), ZSTR_LEN(str), ZSTR_VAL(what), ZSTR_LEN(what))); } /* }}} */ @@ -3688,7 +3688,7 @@ PHP_FUNCTION(addslashes) RETURN_EMPTY_STRING(); } - RETURN_STR(php_addslashes(str, 0)); + RETURN_STR(php_addslashes(str)); } /* }}} */ @@ -3804,20 +3804,20 @@ PHPAPI void php_stripcslashes(zend_string *str) } /* }}} */ -/* {{{ php_addcslashes +/* {{{ php_addcslashes_str */ -PHPAPI zend_string *php_addcslashes(zend_string *str, int should_free, char *what, size_t wlength) +PHPAPI zend_string *php_addcslashes_str(const char *str, size_t len, char *what, size_t wlength) { char flags[256]; char *target; const char *source, *end; char c; size_t newlen; - zend_string *new_str = zend_string_safe_alloc(4, ZSTR_LEN(str), 0, 0); + zend_string *new_str = zend_string_safe_alloc(4, len, 0, 0); php_charmask((unsigned char *)what, wlength, flags); - for (source = (char*)ZSTR_VAL(str), end = source + ZSTR_LEN(str), target = ZSTR_VAL(new_str); source < end; source++) { + for (source = str, end = source + len, target = ZSTR_VAL(new_str); source < end; source++) { c = *source; if (flags[(unsigned char)c]) { if ((unsigned char) c < 32 || (unsigned char) c > 126) { @@ -3840,16 +3840,21 @@ PHPAPI zend_string *php_addcslashes(zend_string *str, int should_free, char *wha } *target = 0; newlen = target - ZSTR_VAL(new_str); - if (newlen < ZSTR_LEN(str) * 4) { + if (newlen < len * 4) { new_str = zend_string_truncate(new_str, newlen, 0); } - if (should_free) { - zend_string_release_ex(str, 0); - } return new_str; } /* }}} */ +/* {{{ php_addcslashes + */ +PHPAPI zend_string *php_addcslashes(zend_string *str, char *what, size_t wlength) +{ + return php_addcslashes_str(ZSTR_VAL(str), ZSTR_LEN(str), what, wlength); +} +/* }}} */ + /* {{{ php_addslashes */ #if ZEND_INTRIN_SSE4_2_NATIVE @@ -3860,14 +3865,14 @@ PHPAPI zend_string *php_addcslashes(zend_string *str, int should_free, char *wha # include "Zend/zend_bitset.h" # include "Zend/zend_cpuinfo.h" -ZEND_INTRIN_SSE4_2_FUNC_DECL(zend_string *php_addslashes_sse42(zend_string *str, int should_free)); -zend_string *php_addslashes_default(zend_string *str, int should_free); +ZEND_INTRIN_SSE4_2_FUNC_DECL(zend_string *php_addslashes_sse42(zend_string *str)); +zend_string *php_addslashes_default(zend_string *str); ZEND_INTRIN_SSE4_2_FUNC_DECL(void php_stripslashes_sse42(zend_string *str)); void php_stripslashes_default(zend_string *str); # if ZEND_INTRIN_SSE4_2_FUNC_PROTO -PHPAPI zend_string *php_addslashes(zend_string *str, int should_free) __attribute__((ifunc("resolve_addslashes"))); +PHPAPI zend_string *php_addslashes(zend_string *str) __attribute__((ifunc("resolve_addslashes"))); PHPAPI void php_stripslashes(zend_string *str) __attribute__((ifunc("resolve_stripslashes"))); static void *resolve_addslashes() { @@ -3885,7 +3890,7 @@ static void *resolve_stripslashes() { } # else /* ZEND_INTRIN_SSE4_2_FUNC_PTR */ -PHPAPI zend_string *(*php_addslashes)(zend_string *str, int should_free) = NULL; +PHPAPI zend_string *(*php_addslashes)(zend_string *str) = NULL; PHPAPI void (*php_stripslashes)(zend_string *str) = NULL; /* {{{ PHP_MINIT_FUNCTION @@ -3907,9 +3912,9 @@ PHP_MINIT_FUNCTION(string_intrin) #if ZEND_INTRIN_SSE4_2_NATIVE || ZEND_INTRIN_SSE4_2_RESOLVER # if ZEND_INTRIN_SSE4_2_NATIVE -PHPAPI zend_string *php_addslashes(zend_string *str, int should_free) /* {{{ */ +PHPAPI zend_string *php_addslashes(zend_string *str) /* {{{ */ # elif ZEND_INTRIN_SSE4_2_RESOLVER -zend_string *php_addslashes_sse42(zend_string *str, int should_free) +zend_string *php_addslashes_sse42(zend_string *str) # endif { ZEND_SET_ALIGNED(16, static const char slashchars[16]) = "\'\"\\\0"; @@ -3953,11 +3958,7 @@ zend_string *php_addslashes_sse42(zend_string *str, int should_free) } } - if (!should_free) { - return zend_string_copy(str); - } - - return str; + return zend_string_copy(str); do_escape: offset = source - (char *)ZSTR_VAL(str); @@ -4039,9 +4040,6 @@ do_escape: } *target = '\0'; - if (should_free) { - zend_string_release_ex(str, 0); - } if (ZSTR_LEN(new_str) - (target - ZSTR_VAL(new_str)) > 16) { new_str = zend_string_truncate(new_str, target - ZSTR_VAL(new_str), 0); @@ -4056,9 +4054,9 @@ do_escape: #if !ZEND_INTRIN_SSE4_2_NATIVE # if ZEND_INTRIN_SSE4_2_RESOLVER -zend_string *php_addslashes_default(zend_string *str, int should_free) /* {{{ */ +zend_string *php_addslashes_default(zend_string *str) /* {{{ */ # else -PHPAPI zend_string *php_addslashes(zend_string *str, int should_free) +PHPAPI zend_string *php_addslashes(zend_string *str) # endif { /* maximum string length, worst case situation */ @@ -4087,11 +4085,7 @@ PHPAPI zend_string *php_addslashes(zend_string *str, int should_free) } } - if (!should_free) { - return zend_string_copy(str); - } - - return str; + return zend_string_copy(str); do_escape: offset = source - (char *)ZSTR_VAL(str); @@ -4118,9 +4112,6 @@ do_escape: } *target = '\0'; - if (should_free) { - zend_string_release_ex(str, 0); - } if (ZSTR_LEN(new_str) - (target - ZSTR_VAL(new_str)) > 16) { new_str = zend_string_truncate(new_str, target - ZSTR_VAL(new_str), 0); diff --git a/ext/standard/var.c b/ext/standard/var.c index 1252097380..14335ba1b4 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -392,7 +392,7 @@ static void php_array_element_export(zval *zv, zend_ulong index, zend_string *ke } else { /* string key */ zend_string *tmp_str; - zend_string *ckey = php_addcslashes(key, 0, "'\\", 2); + zend_string *ckey = php_addcslashes(key, "'\\", 2); tmp_str = php_str_to_str(ZSTR_VAL(ckey), ZSTR_LEN(ckey), "\0", 1, "' . \"\\0\" . '", 12); buffer_append_spaces(buf, level + 1); @@ -420,7 +420,7 @@ static void php_object_element_export(zval *zv, zend_ulong index, zend_string *k zend_string *pname_esc; zend_unmangle_property_name_ex(key, &class_name, &prop_name, &prop_name_len); - pname_esc = php_addcslashes(zend_string_init(prop_name, prop_name_len, 0), 1, "'\\", 2); + pname_esc = php_addcslashes_str(prop_name, prop_name_len, "'\\", 2); smart_str_appendc(buf, '\''); smart_str_append(buf, pname_esc); @@ -473,7 +473,7 @@ again: } break; case IS_STRING: - ztmp = php_addcslashes(Z_STR_P(struc), 0, "'\\", 2); + ztmp = php_addcslashes(Z_STR_P(struc), "'\\", 2); ztmp2 = php_str_to_str(ZSTR_VAL(ztmp), ZSTR_LEN(ztmp), "\0", 1, "' . \"\\0\" . '", 12); smart_str_appendc(buf, '\''); diff --git a/sapi/phpdbg/phpdbg_bp.c b/sapi/phpdbg/phpdbg_bp.c index 27bf532dcc..c104b0dc52 100644 --- a/sapi/phpdbg/phpdbg_bp.c +++ b/sapi/phpdbg/phpdbg_bp.c @@ -136,7 +136,7 @@ PHPDBG_API void phpdbg_export_breakpoints_to_string(char **str) /* {{{ */ switch (brake->type) { case PHPDBG_BREAK_FILE: { - zend_string *filename = php_addcslashes(zend_string_init(((phpdbg_breakfile_t*)brake)->filename, strlen(((phpdbg_breakfile_t*)brake)->filename), 0), 1, "\\\"\n", 3); + zend_string *filename = php_addcslashes_str(((phpdbg_breakfile_t*)brake)->filename, strlen(((phpdbg_breakfile_t*)brake)->filename), "\\\"\n", 3); phpdbg_asprintf(&new_str, "%sbreak \"%s\":%lu\n", *str, ZSTR_VAL(filename), @@ -173,7 +173,7 @@ PHPDBG_API void phpdbg_export_breakpoints_to_string(char **str) /* {{{ */ } break; case PHPDBG_BREAK_FILE_OPLINE: { - zend_string *filename = php_addcslashes(zend_string_init(((phpdbg_breakopline_t*)brake)->class_name, strlen(((phpdbg_breakopline_t*)brake)->class_name), 0), 1, "\\\"\n", 3); + zend_string *filename = php_addcslashes_str(((phpdbg_breakopline_t*)brake)->class_name, strlen(((phpdbg_breakopline_t*)brake)->class_name), "\\\"\n", 3); phpdbg_asprintf(&new_str, "%sbreak \"%s\":#%llu\n", *str, ZSTR_VAL(filename), @@ -205,7 +205,7 @@ PHPDBG_API void phpdbg_export_breakpoints_to_string(char **str) /* {{{ */ break; case FILE_PARAM: { - zend_string *filename = php_addcslashes(zend_string_init(conditional->param.file.name, strlen(conditional->param.file.name), 0), 1, "\\\"\n", 3); + zend_string *filename = php_addcslashes_str(conditional->param.file.name, strlen(conditional->param.file.name), "\\\"\n", 3); phpdbg_asprintf(&new_str, "%sbreak at \"%s\":%lu if %s\n", *str, ZSTR_VAL(filename), conditional->param.file.line, diff --git a/sapi/phpdbg/phpdbg_utils.c b/sapi/phpdbg/phpdbg_utils.c index 71194633ab..e10eb60d4a 100644 --- a/sapi/phpdbg/phpdbg_utils.c +++ b/sapi/phpdbg/phpdbg_utils.c @@ -824,7 +824,7 @@ char *phpdbg_short_zval_print(zval *zv, int maxlen) /* {{{ */ break; case IS_STRING: { int i; - zend_string *str = php_addcslashes(Z_STR_P(zv), 0, "\\\"\n\t\0", 5); + zend_string *str = php_addcslashes(Z_STR_P(zv), "\\\"\n\t\0", 5); for (i = 0; i < ZSTR_LEN(str); i++) { if (ZSTR_VAL(str)[i] < 32) { ZSTR_VAL(str)[i] = ' '; |