mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
zend_ini: Make ZEND_INI_GET_ADDR() return a void* pointer (#21119)
* zend_ini: Make `ZEND_INI_GET_ADDR()` return a `void*` pointer Since the actual type of the storage location is not known, a `void*` is more appropriate and avoids explicit casts that are no more safe than the implicit cast from `void*`. * tree-wide: Remove explicit casts of `ZEND_INI_GET_ADDR()` * UPGRADING.INTERNALS
This commit is contained in:
@@ -64,6 +64,10 @@ PHP 8.6 INTERNALS UPGRADE NOTES
|
||||
zend_enum_RoundingMode parameter.
|
||||
. Added Z_PARAM_ENUM().
|
||||
. Added zend_enum_fetch_case_id().
|
||||
. ZEND_INI_GET_ADDR() is now a void* pointer instead of a char* pointer. This
|
||||
more correctly represents the generic nature of the returned pointer and
|
||||
allows to remove explicit casts, but possibly breaks pointer arithmetic
|
||||
performed on the result.
|
||||
|
||||
========================
|
||||
2. Build system changes
|
||||
|
||||
@@ -157,7 +157,7 @@ static ZEND_INI_MH(OnUpdateScriptEncoding) /* {{{ */
|
||||
|
||||
static ZEND_INI_MH(OnUpdateAssertions) /* {{{ */
|
||||
{
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
|
||||
zend_long val = zend_ini_parse_quantity_warn(new_value, entry->name);
|
||||
|
||||
|
||||
@@ -963,7 +963,7 @@ ZEND_INI_DISP(display_link_numbers) /* {{{ */
|
||||
/* Standard message handlers */
|
||||
ZEND_API ZEND_INI_MH(OnUpdateBool) /* {{{ */
|
||||
{
|
||||
bool *p = (bool *) ZEND_INI_GET_ADDR();
|
||||
bool *p = ZEND_INI_GET_ADDR();
|
||||
*p = zend_ini_parse_bool(new_value);
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -971,7 +971,7 @@ ZEND_API ZEND_INI_MH(OnUpdateBool) /* {{{ */
|
||||
|
||||
ZEND_API ZEND_INI_MH(OnUpdateLong) /* {{{ */
|
||||
{
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
*p = zend_ini_parse_quantity_warn(new_value, entry->name);
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -984,7 +984,7 @@ ZEND_API ZEND_INI_MH(OnUpdateLongGEZero) /* {{{ */
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
*p = tmp;
|
||||
|
||||
return SUCCESS;
|
||||
@@ -993,7 +993,7 @@ ZEND_API ZEND_INI_MH(OnUpdateLongGEZero) /* {{{ */
|
||||
|
||||
ZEND_API ZEND_INI_MH(OnUpdateReal) /* {{{ */
|
||||
{
|
||||
double *p = (double *) ZEND_INI_GET_ADDR();
|
||||
double *p = ZEND_INI_GET_ADDR();
|
||||
*p = zend_strtod(ZSTR_VAL(new_value), NULL);
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -1001,7 +1001,7 @@ ZEND_API ZEND_INI_MH(OnUpdateReal) /* {{{ */
|
||||
|
||||
ZEND_API ZEND_INI_MH(OnUpdateString) /* {{{ */
|
||||
{
|
||||
char **p = (char **) ZEND_INI_GET_ADDR();
|
||||
char **p = ZEND_INI_GET_ADDR();
|
||||
*p = new_value ? ZSTR_VAL(new_value) : NULL;
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -1013,7 +1013,7 @@ ZEND_API ZEND_INI_MH(OnUpdateStringUnempty) /* {{{ */
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
char **p = (char **) ZEND_INI_GET_ADDR();
|
||||
char **p = ZEND_INI_GET_ADDR();
|
||||
*p = new_value ? ZSTR_VAL(new_value) : NULL;
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -1021,7 +1021,7 @@ ZEND_API ZEND_INI_MH(OnUpdateStringUnempty) /* {{{ */
|
||||
|
||||
ZEND_API ZEND_INI_MH(OnUpdateStr) /* {{{ */
|
||||
{
|
||||
zend_string **p = (zend_string **) ZEND_INI_GET_ADDR();
|
||||
zend_string **p = ZEND_INI_GET_ADDR();
|
||||
*p = new_value;
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -1033,7 +1033,7 @@ ZEND_API ZEND_INI_MH(OnUpdateStrNotEmpty) /* {{{ */
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
zend_string **p = (zend_string **) ZEND_INI_GET_ADDR();
|
||||
zend_string **p = ZEND_INI_GET_ADDR();
|
||||
*p = new_value;
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
@@ -257,6 +257,6 @@ typedef struct _zend_ini_parser_param {
|
||||
# define ZEND_INI_GET_BASE() ((char *) ts_resource(*((int *) mh_arg2)))
|
||||
#endif
|
||||
|
||||
#define ZEND_INI_GET_ADDR() (ZEND_INI_GET_BASE() + (size_t) mh_arg1)
|
||||
#define ZEND_INI_GET_ADDR() ((void*)(ZEND_INI_GET_BASE() + (size_t) mh_arg1))
|
||||
|
||||
#endif /* ZEND_INI_H */
|
||||
|
||||
@@ -74,7 +74,7 @@ ZEND_GET_MODULE(bcmath)
|
||||
|
||||
ZEND_INI_MH(OnUpdateScale)
|
||||
{
|
||||
int *p;
|
||||
int *p = ZEND_INI_GET_ADDR();
|
||||
zend_long tmp;
|
||||
|
||||
tmp = zend_ini_parse_quantity_warn(new_value, entry->name);
|
||||
@@ -82,7 +82,6 @@ ZEND_INI_MH(OnUpdateScale)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
p = (int *) ZEND_INI_GET_ADDR();
|
||||
*p = (int) tmp;
|
||||
|
||||
return SUCCESS;
|
||||
|
||||
@@ -115,7 +115,7 @@ char* canonicalize_locale_string(const char* locale) {
|
||||
|
||||
static PHP_INI_MH(OnUpdateErrorLevel)
|
||||
{
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
*p = zend_ini_parse_quantity_warn(new_value, entry->name);
|
||||
if (*p) {
|
||||
php_error_docref("session.configuration", E_DEPRECATED,
|
||||
|
||||
@@ -87,7 +87,7 @@ static ZEND_INI_MH(OnUpdateMemoryConsumption)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
zend_long memsize = atoi(ZSTR_VAL(new_value));
|
||||
/* sanity check we must use at least 8 MB */
|
||||
if (memsize < 8) {
|
||||
@@ -104,7 +104,7 @@ static ZEND_INI_MH(OnUpdateMemoryConsumption)
|
||||
|
||||
static ZEND_INI_MH(OnUpdateInternedStringsBuffer)
|
||||
{
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
zend_long size = zend_ini_parse_quantity_warn(new_value, entry->name);
|
||||
|
||||
if (size < 0) {
|
||||
@@ -123,7 +123,7 @@ static ZEND_INI_MH(OnUpdateInternedStringsBuffer)
|
||||
|
||||
static ZEND_INI_MH(OnUpdateMaxAcceleratedFiles)
|
||||
{
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
zend_long size = atoi(ZSTR_VAL(new_value));
|
||||
/* sanity check we must use a value between MIN_ACCEL_FILES and MAX_ACCEL_FILES */
|
||||
if (size < MIN_ACCEL_FILES) {
|
||||
@@ -140,7 +140,7 @@ static ZEND_INI_MH(OnUpdateMaxAcceleratedFiles)
|
||||
|
||||
static ZEND_INI_MH(OnUpdateMaxWastedPercentage)
|
||||
{
|
||||
double *p = (double *) ZEND_INI_GET_ADDR();
|
||||
double *p = ZEND_INI_GET_ADDR();
|
||||
zend_long percentage = atoi(ZSTR_VAL(new_value));
|
||||
|
||||
if (percentage <= 0 || percentage > 50) {
|
||||
@@ -159,7 +159,7 @@ static ZEND_INI_MH(OnEnable)
|
||||
return OnUpdateBool(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage);
|
||||
} else {
|
||||
/* It may be only temporarily disabled */
|
||||
bool *p = (bool *) ZEND_INI_GET_ADDR();
|
||||
bool *p = ZEND_INI_GET_ADDR();
|
||||
if (zend_ini_parse_bool(new_value)) {
|
||||
if (*p) {
|
||||
/* Do not warn if OPcache is enabled, as the update would be a noop anyways. */
|
||||
@@ -206,7 +206,7 @@ static ZEND_INI_MH(OnUpdateJit)
|
||||
|
||||
static ZEND_INI_MH(OnUpdateJitDebug)
|
||||
{
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
zend_long val = zend_ini_parse_quantity_warn(new_value, entry->name);
|
||||
|
||||
if (zend_jit_debug_config(*p, val, stage) == SUCCESS) {
|
||||
@@ -220,7 +220,7 @@ static ZEND_INI_MH(OnUpdateCounter)
|
||||
{
|
||||
zend_long val = zend_ini_parse_quantity_warn(new_value, entry->name);
|
||||
if (val >= 0 && val < 256) {
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
*p = val;
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -232,7 +232,7 @@ static ZEND_INI_MH(OnUpdateUnrollC)
|
||||
{
|
||||
zend_long val = zend_ini_parse_quantity_warn(new_value, entry->name);
|
||||
if (val > 0 && val < ZEND_JIT_TRACE_MAX_CALL_DEPTH) {
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
*p = val;
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -245,7 +245,7 @@ static ZEND_INI_MH(OnUpdateUnrollR)
|
||||
{
|
||||
zend_long val = zend_ini_parse_quantity_warn(new_value, entry->name);
|
||||
if (val >= 0 && val < ZEND_JIT_TRACE_MAX_RET_DEPTH) {
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
*p = val;
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -258,7 +258,7 @@ static ZEND_INI_MH(OnUpdateUnrollL)
|
||||
{
|
||||
zend_long val = zend_ini_parse_quantity_warn(new_value, entry->name);
|
||||
if (val > 0 && val < ZEND_JIT_TRACE_MAX_LOOPS_UNROLL) {
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
*p = val;
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -271,7 +271,7 @@ static ZEND_INI_MH(OnUpdateMaxTraceLength)
|
||||
{
|
||||
zend_long val = zend_ini_parse_quantity_warn(new_value, entry->name);
|
||||
if (val > 3 && val <= ZEND_JIT_TRACE_MAX_LENGTH) {
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
*p = val;
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
@@ -812,7 +812,7 @@ static PHP_INI_MH(OnUpdateSessionGcProbability)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
*p = tmp;
|
||||
|
||||
return SUCCESS;
|
||||
@@ -830,7 +830,7 @@ static PHP_INI_MH(OnUpdateSessionDivisor)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
*p = tmp;
|
||||
|
||||
return SUCCESS;
|
||||
@@ -859,7 +859,7 @@ static PHP_INI_MH(OnUpdateUseOnlyCookies)
|
||||
{
|
||||
SESSION_CHECK_ACTIVE_STATE;
|
||||
SESSION_CHECK_OUTPUT_STATE;
|
||||
bool *p = (bool *) ZEND_INI_GET_ADDR();
|
||||
bool *p = ZEND_INI_GET_ADDR();
|
||||
*p = zend_ini_parse_bool(new_value);
|
||||
if (!*p) {
|
||||
php_error_docref("session.configuration", E_DEPRECATED, "Disabling session.use_only_cookies INI setting is deprecated");
|
||||
@@ -871,7 +871,7 @@ static PHP_INI_MH(OnUpdateUseTransSid)
|
||||
{
|
||||
SESSION_CHECK_ACTIVE_STATE;
|
||||
SESSION_CHECK_OUTPUT_STATE;
|
||||
bool *p = (bool *) ZEND_INI_GET_ADDR();
|
||||
bool *p = ZEND_INI_GET_ADDR();
|
||||
*p = zend_ini_parse_bool(new_value);
|
||||
if (*p) {
|
||||
php_error_docref("session.configuration", E_DEPRECATED, "Enabling session.use_trans_sid INI setting is deprecated");
|
||||
|
||||
@@ -349,7 +349,7 @@ ZEND_GET_MODULE(soap)
|
||||
|
||||
ZEND_INI_MH(OnUpdateCacheMode)
|
||||
{
|
||||
char *p = (char *) ZEND_INI_GET_ADDR();
|
||||
char *p = ZEND_INI_GET_ADDR();
|
||||
*p = (char)atoi(ZSTR_VAL(new_value));
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ static PHP_INI_MH(OnChangeCallback) /* {{{ */
|
||||
|
||||
static PHP_INI_MH(OnUpdateActiveBool)
|
||||
{
|
||||
bool *p = (bool *) ZEND_INI_GET_ADDR();
|
||||
bool *p = ZEND_INI_GET_ADDR();
|
||||
*p = zend_ini_parse_bool(new_value);
|
||||
if (php_must_emit_ini_deprecation(stage) && !*p) {
|
||||
php_error_docref(NULL, E_DEPRECATED, "assert.active INI setting is deprecated");
|
||||
@@ -89,7 +89,7 @@ static PHP_INI_MH(OnUpdateActiveBool)
|
||||
|
||||
static PHP_INI_MH(OnUpdateBailBool)
|
||||
{
|
||||
bool *p = (bool *) ZEND_INI_GET_ADDR();
|
||||
bool *p = ZEND_INI_GET_ADDR();
|
||||
*p = zend_ini_parse_bool(new_value);
|
||||
if (php_must_emit_ini_deprecation(stage) && *p) {
|
||||
php_error_docref(NULL, E_DEPRECATED, "assert.bail INI setting is deprecated");
|
||||
@@ -99,7 +99,7 @@ static PHP_INI_MH(OnUpdateBailBool)
|
||||
|
||||
static PHP_INI_MH(OnUpdateExceptionBool)
|
||||
{
|
||||
bool *p = (bool *) ZEND_INI_GET_ADDR();
|
||||
bool *p = ZEND_INI_GET_ADDR();
|
||||
*p = zend_ini_parse_bool(new_value);
|
||||
if (php_must_emit_ini_deprecation(stage) && !*p) {
|
||||
php_error_docref(NULL, E_DEPRECATED, "assert.exception INI setting is deprecated");
|
||||
@@ -110,7 +110,7 @@ static PHP_INI_MH(OnUpdateExceptionBool)
|
||||
|
||||
static PHP_INI_MH(OnUpdateWarningBool)
|
||||
{
|
||||
bool *p = (bool *) ZEND_INI_GET_ADDR();
|
||||
bool *p = ZEND_INI_GET_ADDR();
|
||||
*p = zend_ini_parse_bool(new_value);
|
||||
if (php_must_emit_ini_deprecation(stage) && !*p) {
|
||||
php_error_docref(NULL, E_DEPRECATED, "assert.warning INI setting is deprecated");
|
||||
|
||||
@@ -326,7 +326,7 @@ static void zend_test_execute_internal(zend_execute_data *execute_data, zval *re
|
||||
|
||||
static ZEND_INI_MH(zend_test_observer_OnUpdateCommaList)
|
||||
{
|
||||
zend_array **p = (zend_array **) ZEND_INI_GET_ADDR();
|
||||
zend_array **p = ZEND_INI_GET_ADDR();
|
||||
zend_string *funcname;
|
||||
zend_function *func;
|
||||
if (!ZT_G(observer_enabled)) {
|
||||
|
||||
@@ -1293,7 +1293,7 @@ static PHP_INI_MH(OnUpdate_zlib_output_compression)
|
||||
}
|
||||
}
|
||||
|
||||
zend_long *p = (zend_long *) ZEND_INI_GET_ADDR();
|
||||
zend_long *p = ZEND_INI_GET_ADDR();
|
||||
*p = int_value;
|
||||
|
||||
ZLIBG(output_compression) = ZLIBG(output_compression_default);
|
||||
|
||||
@@ -72,7 +72,7 @@ Allows any change to open_basedir setting in during Startup and Shutdown events,
|
||||
or a tightening during activation/runtime/deactivation */
|
||||
PHPAPI ZEND_INI_MH(OnUpdateBaseDir)
|
||||
{
|
||||
char **p = (char **) ZEND_INI_GET_ADDR();
|
||||
char **p = ZEND_INI_GET_ADDR();
|
||||
char *pathbuf, *ptr, *end;
|
||||
|
||||
if (stage == PHP_INI_STAGE_STARTUP || stage == PHP_INI_STAGE_SHUTDOWN || stage == PHP_INI_STAGE_ACTIVATE || stage == PHP_INI_STAGE_DEACTIVATE) {
|
||||
|
||||
@@ -670,7 +670,7 @@ static PHP_INI_MH(OnUpdateInputEncoding)
|
||||
|
||||
static PHP_INI_MH(OnUpdateReportMemleaks)
|
||||
{
|
||||
bool *p = (bool *) ZEND_INI_GET_ADDR();
|
||||
bool *p = ZEND_INI_GET_ADDR();
|
||||
bool new_bool_value = zend_ini_parse_bool(new_value);
|
||||
|
||||
if (!new_bool_value) {
|
||||
@@ -707,7 +707,7 @@ static PHP_INI_MH(OnUpdateErrorLog)
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
char **p = (char **) ZEND_INI_GET_ADDR();
|
||||
char **p = ZEND_INI_GET_ADDR();
|
||||
*p = new_value && ZSTR_LEN(new_value) > 0 ? ZSTR_VAL(new_value) : NULL;
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -722,7 +722,7 @@ static PHP_INI_MH(OnUpdateMailLog)
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
char **p = (char **) ZEND_INI_GET_ADDR();
|
||||
char **p = ZEND_INI_GET_ADDR();
|
||||
*p = new_value && ZSTR_LEN(new_value) > 0 ? ZSTR_VAL(new_value) : NULL;
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user