From 8109d210654010dcf8d6613846638a61a76cdd22 Mon Sep 17 00:00:00 2001 From: Gina Peter Bnayard Date: Tue, 13 Aug 2024 19:24:02 +0200 Subject: [PATCH] ext/standard/url.c: Stop exposing php_replace_controlchars_ex() This is not used from a quick search on SourceGraph and this allows us to refactor it --- UPGRADING.INTERNALS | 1 + ext/standard/url.c | 36 ++++++++++++------------------------ ext/standard/url.h | 1 - 3 files changed, 13 insertions(+), 25 deletions(-) diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS index ec2c57854ec..0ae0ed6bf72 100644 --- a/UPGRADING.INTERNALS +++ b/UPGRADING.INTERNALS @@ -380,6 +380,7 @@ PHP 8.4 INTERNALS UPGRADE NOTES php_string_tolower() functions has been removed, use zend_str_toupper(), zend_string_toupper(), zend_str_tolower(), and zend_string_tolower() respectively instead. + - The php_replace_controlchars_ex() function is no longer exposed. h. ext/session - Added the php_get_session_status() API to get the session status, which is diff --git a/ext/standard/url.c b/ext/standard/url.c index 093650bf991..7d564b510bc 100644 --- a/ext/standard/url.c +++ b/ext/standard/url.c @@ -49,31 +49,19 @@ PHPAPI void php_url_free(php_url *theurl) } /* }}} */ -/* {{{ php_replace_controlchars_ex */ -PHPAPI char *php_replace_controlchars_ex(char *str, size_t len) +static void php_replace_controlchars(char *str, size_t len) { unsigned char *s = (unsigned char *)str; unsigned char *e = (unsigned char *)str + len; - if (!str) { - return (NULL); - } + ZEND_ASSERT(str != NULL); while (s < e) { - if (iscntrl(*s)) { *s='_'; } s++; } - - return (str); -} -/* }}} */ - -PHPAPI char *php_replace_controlchars(char *str) -{ - return php_replace_controlchars_ex(str, strlen(str)); } PHPAPI php_url *php_url_parse(char const *str) @@ -133,7 +121,7 @@ PHPAPI php_url *php_url_parse_ex2(char const *str, size_t length, bool *has_port if (e + 1 == ue) { /* only scheme is available */ ret->scheme = zend_string_init(s, (e - s), 0); - php_replace_controlchars_ex(ZSTR_VAL(ret->scheme), ZSTR_LEN(ret->scheme)); + php_replace_controlchars(ZSTR_VAL(ret->scheme), ZSTR_LEN(ret->scheme)); return ret; } @@ -155,13 +143,13 @@ PHPAPI php_url *php_url_parse_ex2(char const *str, size_t length, bool *has_port } ret->scheme = zend_string_init(s, (e-s), 0); - php_replace_controlchars_ex(ZSTR_VAL(ret->scheme), ZSTR_LEN(ret->scheme)); + php_replace_controlchars(ZSTR_VAL(ret->scheme), ZSTR_LEN(ret->scheme)); s = e + 1; goto just_path; } else { ret->scheme = zend_string_init(s, (e-s), 0); - php_replace_controlchars_ex(ZSTR_VAL(ret->scheme), ZSTR_LEN(ret->scheme)); + php_replace_controlchars(ZSTR_VAL(ret->scheme), ZSTR_LEN(ret->scheme)); if (e + 2 < ue && *(e + 2) == '/') { s = e + 3; @@ -227,14 +215,14 @@ parse_host: if ((p = zend_memrchr(s, '@', (e-s)))) { if ((pp = memchr(s, ':', (p-s)))) { ret->user = zend_string_init(s, (pp-s), 0); - php_replace_controlchars_ex(ZSTR_VAL(ret->user), ZSTR_LEN(ret->user)); + php_replace_controlchars(ZSTR_VAL(ret->user), ZSTR_LEN(ret->user)); pp++; ret->pass = zend_string_init(pp, (p-pp), 0); - php_replace_controlchars_ex(ZSTR_VAL(ret->pass), ZSTR_LEN(ret->pass)); + php_replace_controlchars(ZSTR_VAL(ret->pass), ZSTR_LEN(ret->pass)); } else { ret->user = zend_string_init(s, (p-s), 0); - php_replace_controlchars_ex(ZSTR_VAL(ret->user), ZSTR_LEN(ret->user)); + php_replace_controlchars(ZSTR_VAL(ret->user), ZSTR_LEN(ret->user)); } s = p + 1; @@ -283,7 +271,7 @@ parse_host: } ret->host = zend_string_init(s, (p-s), 0); - php_replace_controlchars_ex(ZSTR_VAL(ret->host), ZSTR_LEN(ret->host)); + php_replace_controlchars(ZSTR_VAL(ret->host), ZSTR_LEN(ret->host)); if (e == ue) { return ret; @@ -299,7 +287,7 @@ parse_host: p++; if (p < e) { ret->fragment = zend_string_init(p, (e - p), 0); - php_replace_controlchars_ex(ZSTR_VAL(ret->fragment), ZSTR_LEN(ret->fragment)); + php_replace_controlchars(ZSTR_VAL(ret->fragment), ZSTR_LEN(ret->fragment)); } else { ret->fragment = ZSTR_EMPTY_ALLOC(); } @@ -311,7 +299,7 @@ parse_host: p++; if (p < e) { ret->query = zend_string_init(p, (e - p), 0); - php_replace_controlchars_ex(ZSTR_VAL(ret->query), ZSTR_LEN(ret->query)); + php_replace_controlchars(ZSTR_VAL(ret->query), ZSTR_LEN(ret->query)); } else { ret->query = ZSTR_EMPTY_ALLOC(); } @@ -320,7 +308,7 @@ parse_host: if (s < e || s == ue) { ret->path = zend_string_init(s, (e - s), 0); - php_replace_controlchars_ex(ZSTR_VAL(ret->path), ZSTR_LEN(ret->path)); + php_replace_controlchars(ZSTR_VAL(ret->path), ZSTR_LEN(ret->path)); } return ret; diff --git a/ext/standard/url.h b/ext/standard/url.h index 5ce9e756eef..4126ee6c6db 100644 --- a/ext/standard/url.h +++ b/ext/standard/url.h @@ -36,7 +36,6 @@ PHPAPI size_t php_url_decode(char *str, size_t len); /* return value: length of PHPAPI size_t php_raw_url_decode(char *str, size_t len); /* return value: length of decoded string */ PHPAPI zend_string *php_url_encode(char const *s, size_t len); PHPAPI zend_string *php_raw_url_encode(char const *s, size_t len); -PHPAPI char *php_replace_controlchars_ex(char *str, size_t len); #define PHP_URL_SCHEME 0 #define PHP_URL_HOST 1