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
This commit is contained in:
Gina Peter Bnayard 2024-08-13 19:24:02 +02:00 committed by Gina Peter Banyard
parent d45eb46c97
commit 8109d21065
3 changed files with 13 additions and 25 deletions

View File

@ -380,6 +380,7 @@ PHP 8.4 INTERNALS UPGRADE NOTES
php_string_tolower() functions has been removed, use zend_str_toupper(), php_string_tolower() functions has been removed, use zend_str_toupper(),
zend_string_toupper(), zend_str_tolower(), and zend_string_tolower() zend_string_toupper(), zend_str_tolower(), and zend_string_tolower()
respectively instead. respectively instead.
- The php_replace_controlchars_ex() function is no longer exposed.
h. ext/session h. ext/session
- Added the php_get_session_status() API to get the session status, which is - Added the php_get_session_status() API to get the session status, which is

View File

@ -49,31 +49,19 @@ PHPAPI void php_url_free(php_url *theurl)
} }
/* }}} */ /* }}} */
/* {{{ php_replace_controlchars_ex */ static void php_replace_controlchars(char *str, size_t len)
PHPAPI char *php_replace_controlchars_ex(char *str, size_t len)
{ {
unsigned char *s = (unsigned char *)str; unsigned char *s = (unsigned char *)str;
unsigned char *e = (unsigned char *)str + len; unsigned char *e = (unsigned char *)str + len;
if (!str) { ZEND_ASSERT(str != NULL);
return (NULL);
}
while (s < e) { while (s < e) {
if (iscntrl(*s)) { if (iscntrl(*s)) {
*s='_'; *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) 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 */ if (e + 1 == ue) { /* only scheme is available */
ret->scheme = zend_string_init(s, (e - s), 0); 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; 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); 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; s = e + 1;
goto just_path; goto just_path;
} else { } else {
ret->scheme = zend_string_init(s, (e-s), 0); 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) == '/') { if (e + 2 < ue && *(e + 2) == '/') {
s = e + 3; s = e + 3;
@ -227,14 +215,14 @@ parse_host:
if ((p = zend_memrchr(s, '@', (e-s)))) { if ((p = zend_memrchr(s, '@', (e-s)))) {
if ((pp = memchr(s, ':', (p-s)))) { if ((pp = memchr(s, ':', (p-s)))) {
ret->user = zend_string_init(s, (pp-s), 0); 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++; pp++;
ret->pass = zend_string_init(pp, (p-pp), 0); 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 { } else {
ret->user = zend_string_init(s, (p-s), 0); 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; s = p + 1;
@ -283,7 +271,7 @@ parse_host:
} }
ret->host = zend_string_init(s, (p-s), 0); 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) { if (e == ue) {
return ret; return ret;
@ -299,7 +287,7 @@ parse_host:
p++; p++;
if (p < e) { if (p < e) {
ret->fragment = zend_string_init(p, (e - p), 0); 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 { } else {
ret->fragment = ZSTR_EMPTY_ALLOC(); ret->fragment = ZSTR_EMPTY_ALLOC();
} }
@ -311,7 +299,7 @@ parse_host:
p++; p++;
if (p < e) { if (p < e) {
ret->query = zend_string_init(p, (e - p), 0); 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 { } else {
ret->query = ZSTR_EMPTY_ALLOC(); ret->query = ZSTR_EMPTY_ALLOC();
} }
@ -320,7 +308,7 @@ parse_host:
if (s < e || s == ue) { if (s < e || s == ue) {
ret->path = zend_string_init(s, (e - s), 0); 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; return ret;

View File

@ -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 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_url_encode(char const *s, size_t len);
PHPAPI zend_string *php_raw_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_SCHEME 0
#define PHP_URL_HOST 1 #define PHP_URL_HOST 1