Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions UPGRADING.INTERNALS
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ PHP 8.6 INTERNALS UPGRADE NOTES
performed on the result.
. The zend_dval_to_lval_cap() function no longer takes a second
zend_string* parameter.
. The zend_ini_string{_ex} functions (and thus INI_STR() and INI_ORIG_STR()
macros) now return a const char* instead of a char*.

========================
2. Build system changes
Expand Down
4 changes: 2 additions & 2 deletions Zend/zend_fibers.c
Original file line number Diff line number Diff line change
Expand Up @@ -573,8 +573,8 @@ static ZEND_STACK_ALIGNED void zend_fiber_execute(zend_fiber_transfer *transfer)

/* Determine the current error_reporting ini setting. */
zend_long error_reporting = INI_INT("error_reporting");
/* If error_reporting is 0 and not explicitly set to 0, INI_STR returns a null pointer. */
if (!error_reporting && !INI_STR("error_reporting")) {
/* If error_reporting is 0 and not explicitly set to 0, zend_ini_str returns a null pointer. */
if (!error_reporting && !zend_ini_str(ZEND_STRL("error_reporting"), false)) {
error_reporting = E_ALL;
}

Expand Down
4 changes: 2 additions & 2 deletions Zend/zend_highlight.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ ZEND_API void zend_highlight(zend_syntax_highlighter_ini *syntax_highlighter_ini
{
zval token;
int token_type;
char *last_color = syntax_highlighter_ini->highlight_html;
char *next_color;
const char *last_color = syntax_highlighter_ini->highlight_html;
const char *next_color;

zend_printf("<pre><code style=\"color: %s\">", last_color);
/* highlight stuff coming back from zendlex() */
Expand Down
10 changes: 5 additions & 5 deletions Zend/zend_highlight.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@


typedef struct _zend_syntax_highlighter_ini {
char *highlight_html;
char *highlight_comment;
char *highlight_default;
char *highlight_string;
char *highlight_keyword;
const char *highlight_html;
const char *highlight_comment;
const char *highlight_default;
const char *highlight_string;
const char *highlight_keyword;
} zend_syntax_highlighter_ini;


Expand Down
4 changes: 2 additions & 2 deletions Zend/zend_ini.c
Original file line number Diff line number Diff line change
Expand Up @@ -491,15 +491,15 @@ ZEND_API double zend_ini_double(const char *name, size_t name_length, int orig)
}
/* }}} */

ZEND_API char *zend_ini_string_ex(const char *name, size_t name_length, int orig, bool *exists) /* {{{ */
ZEND_API const char *zend_ini_string_ex(const char *name, size_t name_length, int orig, bool *exists) /* {{{ */
{
zend_string *str = zend_ini_str_ex(name, name_length, orig, exists);

return str ? ZSTR_VAL(str) : NULL;
}
/* }}} */

ZEND_API char *zend_ini_string(const char *name, size_t name_length, int orig) /* {{{ */
ZEND_API const char *zend_ini_string(const char *name, size_t name_length, int orig) /* {{{ */
{
zend_string *str = zend_ini_str(name, name_length, orig);

Expand Down
8 changes: 4 additions & 4 deletions Zend/zend_ini.h
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@ ZEND_API void display_ini_entries(zend_module_entry *module);

ZEND_API zend_long zend_ini_long(const char *name, size_t name_length, int orig);
ZEND_API double zend_ini_double(const char *name, size_t name_length, int orig);
ZEND_API char *zend_ini_string(const char *name, size_t name_length, int orig);
ZEND_API char *zend_ini_string_ex(const char *name, size_t name_length, int orig, bool *exists);
ZEND_API const char *zend_ini_string(const char *name, size_t name_length, int orig);
ZEND_API const char *zend_ini_string_ex(const char *name, size_t name_length, int orig, bool *exists);
ZEND_API zend_string *zend_ini_str(const char *name, size_t name_length, bool orig);
ZEND_API zend_string *zend_ini_str_ex(const char *name, size_t name_length, bool orig, bool *exists);
ZEND_API zend_string *zend_ini_get_value(zend_string *name);
Expand Down Expand Up @@ -194,12 +194,12 @@ END_EXTERN_C()
#define INI_INT(name) zend_ini_long((name), strlen(name), 0)
#define INI_FLT(name) zend_ini_double((name), strlen(name), 0)
#define INI_STR(name) zend_ini_string_ex((name), strlen(name), 0, NULL)
#define INI_BOOL(name) ((bool) INI_INT(name))
#define INI_BOOL(name) zend_ini_parse_bool(zend_ini_str((name), strlen(name), false))

#define INI_ORIG_INT(name) zend_ini_long((name), strlen(name), 1)
#define INI_ORIG_FLT(name) zend_ini_double((name), strlen(name), 1)
#define INI_ORIG_STR(name) zend_ini_string((name), strlen(name), 1)
#define INI_ORIG_BOOL(name) ((bool) INI_ORIG_INT(name))
#define INI_ORIG_BOOL(name) zend_ini_parse_bool(zend_ini_str((name), strlen(name), true))

#define REGISTER_INI_ENTRIES() zend_register_ini_entries_ex(ini_entries, module_number, type)
#define UNREGISTER_INI_ENTRIES() zend_unregister_ini_entries_ex(module_number, type)
Expand Down
7 changes: 3 additions & 4 deletions ext/com_dotnet/com_dotnet.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,6 @@ static HRESULT dotnet_bind_runtime(LPVOID FAR *ppv)
typedef HRESULT (STDAPICALLTYPE *cbtr_t)(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv);
cbtr_t CorBindToRuntime;
OLECHAR *oleversion;
char *version;

mscoree = LoadLibraryA("mscoree.dll");
if (mscoree == NULL) {
Expand All @@ -140,11 +139,11 @@ static HRESULT dotnet_bind_runtime(LPVOID FAR *ppv)
return S_FALSE;
}

version = INI_STR("com.dotnet_version");
if (version == NULL || *version == '\0') {
const zend_string *version = zend_ini_str(ZEND_STRL("com.dotnet_version"), false);
if (version == NULL || ZSTR_LEN(version) == 0) {
oleversion = NULL;
} else {
oleversion = php_com_string_to_olestring(version, strlen(version), COMG(code_page));
oleversion = php_com_string_to_olestring(ZSTR_VAL(version), ZSTR_LEN(version), COMG(code_page));
}

hr = CorBindToRuntime(oleversion, NULL, &CLSID_CorRuntimeHost, &IID_ICorRuntimeHost, ppv);
Expand Down
4 changes: 1 addition & 3 deletions ext/curl/interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -1100,8 +1100,6 @@ static void create_certinfo(struct curl_certinfo *ci, zval *listcode)
Set default options for a handle */
static void _php_curl_set_default_options(php_curl *ch)
{
char *cainfo;

curl_easy_setopt(ch->cp, CURLOPT_NOPROGRESS, 1L);
curl_easy_setopt(ch->cp, CURLOPT_VERBOSE, 0L);
curl_easy_setopt(ch->cp, CURLOPT_ERRORBUFFER, ch->err.str);
Expand All @@ -1114,7 +1112,7 @@ static void _php_curl_set_default_options(php_curl *ch)
curl_easy_setopt(ch->cp, CURLOPT_DNS_CACHE_TIMEOUT, 120L);
curl_easy_setopt(ch->cp, CURLOPT_MAXREDIRS, 20L); /* prevent infinite redirects */

cainfo = INI_STR("openssl.cafile");
const char* cainfo = INI_STR("openssl.cafile");
if (!(cainfo && cainfo[0] != '\0')) {
cainfo = INI_STR("curl.cainfo");
}
Expand Down
8 changes: 4 additions & 4 deletions ext/openssl/openssl_backend_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -504,10 +504,10 @@ void php_openssl_set_cert_locations(zval *return_value)
add_assoc_string(return_value, "default_cert_dir_env", (char *) X509_get_default_cert_dir_env());
add_assoc_string(return_value, "default_private_dir", (char *) X509_get_default_private_dir());
add_assoc_string(return_value, "default_default_cert_area", (char *) X509_get_default_cert_area());
add_assoc_string(return_value, "ini_cafile",
zend_ini_string("openssl.cafile", sizeof("openssl.cafile")-1, 0));
add_assoc_string(return_value, "ini_capath",
zend_ini_string("openssl.capath", sizeof("openssl.capath")-1, 0));
add_assoc_str(return_value, "ini_cafile",
zend_string_copy(zend_ini_str(ZEND_STRL("openssl.cafile"), false)));
add_assoc_str(return_value, "ini_capath",
zend_string_copy(zend_ini_str(ZEND_STRL("openssl.capath"), false)));
}

X509 *php_openssl_x509_from_str(
Expand Down
12 changes: 6 additions & 6 deletions ext/openssl/xp_ssl.c
Original file line number Diff line number Diff line change
Expand Up @@ -880,16 +880,16 @@ static long php_openssl_load_stream_cafile(X509_STORE *cert_store, const char *c
static zend_result php_openssl_enable_peer_verification(SSL_CTX *ctx, php_stream *stream) /* {{{ */
{
zval *val = NULL;
char *cafile = NULL;
char *capath = NULL;
const char *cafile = NULL;
const char *capath = NULL;
php_openssl_netstream_data_t *sslsock = (php_openssl_netstream_data_t*)stream->abstract;

GET_VER_OPT_STRING("cafile", cafile);
GET_VER_OPT_STRING("capath", capath);

if (cafile == NULL) {
cafile = zend_ini_string("openssl.cafile", sizeof("openssl.cafile")-1, 0);
cafile = strlen(cafile) ? cafile : NULL;
const zend_string *cafile_str = zend_ini_str(ZEND_STRL("openssl.cafile"), false);
cafile = ZSTR_LEN(cafile_str) ? ZSTR_VAL(cafile_str) : NULL;
} else if (!sslsock->is_client) {
/* Servers need to load and assign CA names from the cafile */
STACK_OF(X509_NAME) *cert_names = SSL_load_client_CA_file(cafile);
Expand All @@ -902,8 +902,8 @@ static zend_result php_openssl_enable_peer_verification(SSL_CTX *ctx, php_stream
}

if (capath == NULL) {
capath = zend_ini_string("openssl.capath", sizeof("openssl.capath")-1, 0);
capath = strlen(capath) ? capath : NULL;
const zend_string *capath_str = zend_ini_str(ZEND_STRL("openssl.capath"), false);
capath = ZSTR_LEN(capath_str) ? ZSTR_VAL(capath_str) : NULL;
}

if (cafile || capath) {
Expand Down
5 changes: 2 additions & 3 deletions ext/standard/basic_functions.c
Original file line number Diff line number Diff line change
Expand Up @@ -2020,17 +2020,16 @@ PHP_FUNCTION(ini_restore)
PHP_FUNCTION(set_include_path)
{
zend_string *new_value;
char *old_value;
zend_string *key;

ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_PATH_STR(new_value)
ZEND_PARSE_PARAMETERS_END();

old_value = zend_ini_string("include_path", sizeof("include_path") - 1, 0);
zend_string *old_value = zend_ini_str("include_path", sizeof("include_path") - 1, false);
/* copy to return here, because alter might free it! */
if (old_value) {
RETVAL_STRING(old_value);
RETVAL_STR_COPY(old_value);
} else {
RETVAL_FALSE;
}
Expand Down
4 changes: 2 additions & 2 deletions ext/standard/browscap.c
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callb
}
/* }}} */

static zend_result browscap_read_file(char *filename, browser_data *browdata, bool persistent) /* {{{ */
static zend_result browscap_read_file(const char *filename, browser_data *browdata, bool persistent) /* {{{ */
{
zend_file_handle fh;
browscap_parser_ctx ctx = {0};
Expand Down Expand Up @@ -499,7 +499,7 @@ PHP_INI_MH(OnChangeBrowscap)

PHP_MINIT_FUNCTION(browscap) /* {{{ */
{
char *browscap = INI_STR("browscap");
const char *browscap = INI_STR("browscap");

#ifdef ZTS
ts_allocate_id(&browscap_globals_id, sizeof(browser_data), (ts_allocate_ctor) browscap_globals_ctor, NULL);
Expand Down
2 changes: 1 addition & 1 deletion ext/standard/dl.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ PHPAPI int php_load_extension(const char *filename, int type, int start_now)
zend_module_entry *module_entry;
zend_module_entry *(*get_module)(void);
int error_type, slash_suffix = 0;
char *extension_dir;
const char *extension_dir;
char *err1, *err2;

if (type == MODULE_PERSISTENT) {
Expand Down
6 changes: 3 additions & 3 deletions ext/standard/mail.c
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ static int php_mail_detect_multiple_crlf(const char *hdr) {
PHPAPI bool php_mail(const char *to, const char *subject, const char *message, const char *headers, const zend_string *extra_cmd)
{
FILE *sendmail;
char *sendmail_path = INI_STR("sendmail_path");
const char *sendmail_path = INI_STR("sendmail_path");
char *sendmail_cmd = NULL;
const zend_string *mail_log = zend_ini_str(ZEND_STRL("mail.log"), false);
const char *hdr = headers;
Expand Down Expand Up @@ -553,7 +553,7 @@ PHPAPI bool php_mail(const char *to, const char *subject, const char *message, c
if (extra_cmd != NULL) {
spprintf(&sendmail_cmd, 0, "%s %s", sendmail_path, ZSTR_VAL(extra_cmd));
} else {
sendmail_cmd = sendmail_path;
sendmail_cmd = (char*)sendmail_path;
}

#if PHP_SIGCHILD
Expand Down Expand Up @@ -701,7 +701,7 @@ PHPAPI bool php_mail(const char *to, const char *subject, const char *message, c
/* {{{ PHP_MINFO_FUNCTION */
PHP_MINFO_FUNCTION(mail)
{
char *sendmail_path = INI_STR("sendmail_path");
const char *sendmail_path = INI_STR("sendmail_path");

#ifdef PHP_WIN32
if (!sendmail_path) {
Expand Down
2 changes: 1 addition & 1 deletion ext/tidy/tidy.c
Original file line number Diff line number Diff line change
Expand Up @@ -873,7 +873,7 @@ static PHP_RINIT_FUNCTION(tidy)

static PHP_RSHUTDOWN_FUNCTION(tidy)
{
TG(clean_output) = INI_ORIG_BOOL("tidy.clean_output");
TG(clean_output) = zend_ini_parse_bool(zend_ini_str(ZEND_STRL("tidy.clean_output"), true));

return SUCCESS;
}
Expand Down
5 changes: 2 additions & 3 deletions ext/zlib/zlib.c
Original file line number Diff line number Diff line change
Expand Up @@ -1267,7 +1267,6 @@ ZEND_GET_MODULE(php_zlib)
static PHP_INI_MH(OnUpdate_zlib_output_compression)
{
int int_value;
char *ini_value;
if (new_value == NULL) {
return FAILURE;
}
Expand All @@ -1279,9 +1278,9 @@ static PHP_INI_MH(OnUpdate_zlib_output_compression)
} else {
int_value = (int) zend_ini_parse_quantity_warn(new_value, entry->name);
}
ini_value = zend_ini_string("output_handler", sizeof("output_handler") - 1, 0);
const zend_string *ini_value = zend_ini_str(ZEND_STRL("output_handler"), false);

if (ini_value && *ini_value && int_value) {
if (ini_value && ZSTR_LEN(ini_value) && int_value) {
php_error_docref("ref.outcontrol", E_CORE_ERROR, "Cannot use both zlib.output_compression and output_handler together!!");
return FAILURE;
}
Expand Down
4 changes: 2 additions & 2 deletions main/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1471,8 +1471,8 @@ static ZEND_COLD void php_error_cb(int orig_type, zend_string *error_filename, c
if (PG(xmlrpc_errors)) {
php_printf("<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><int>" ZEND_LONG_FMT "</int></value></member><member><name>faultString</name><value><string>%s:%s in %s on line %" PRIu32 "%s%s</string></value></member></struct></value></fault></methodResponse>", PG(xmlrpc_error_number), error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno, ZSTR_LEN(backtrace) ? "\nStack trace:\n" : "", ZSTR_VAL(backtrace));
} else {
char *prepend_string = INI_STR("error_prepend_string");
char *append_string = INI_STR("error_append_string");
const char *prepend_string = INI_STR("error_prepend_string");
const char *append_string = INI_STR("error_append_string");

if (PG(html_errors)) {
if (type == E_ERROR || type == E_PARSE) {
Expand Down
2 changes: 1 addition & 1 deletion main/php_ini.c
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ static void php_load_zend_extension_cb(void *arg)
} else {
DL_HANDLE handle;
char *libpath;
char *extension_dir = INI_STR("extension_dir");
const char *extension_dir = INI_STR("extension_dir");
int slash_suffix = 0;
char *err1, *err2;

Expand Down
13 changes: 5 additions & 8 deletions sapi/phpdbg/phpdbg_prompt.c
Original file line number Diff line number Diff line change
Expand Up @@ -1190,19 +1190,16 @@ static void add_zendext_info(zend_extension *ext) /* {{{ */ {
#ifdef HAVE_LIBDL
PHPDBG_API const char *phpdbg_load_module_or_extension(char **path, const char **name) /* {{{ */ {
DL_HANDLE handle;
char *extension_dir;

extension_dir = INI_STR("extension_dir");
zend_string *extension_dir = zend_ini_str(ZEND_STRL("extension_dir"), false);

if (strchr(*path, '/') != NULL || strchr(*path, DEFAULT_SLASH) != NULL) {
/* path is fine */
} else if (extension_dir && extension_dir[0]) {
} else if (extension_dir && ZSTR_LEN(extension_dir)) {
char *libpath;
int extension_dir_len = strlen(extension_dir);
if (IS_SLASH(extension_dir[extension_dir_len-1])) {
spprintf(&libpath, 0, "%s%s", extension_dir, *path); /* SAFE */
if (IS_SLASH(ZSTR_VAL(extension_dir)[ZSTR_LEN(extension_dir-1)])) {
spprintf(&libpath, 0, "%s%s", ZSTR_VAL(extension_dir), *path); /* SAFE */
} else {
spprintf(&libpath, 0, "%s%c%s", extension_dir, DEFAULT_SLASH, *path); /* SAFE */
spprintf(&libpath, 0, "%s%c%s", ZSTR_VAL(extension_dir), DEFAULT_SLASH, *path); /* SAFE */
}
efree(*path);
*path = libpath;
Expand Down
Loading