From d2ba8485721144dbb235d183a82e34d8bb1720eb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michael=20Vo=C5=99=C3=AD=C5=A1ek?= Date: Wed, 12 Feb 2020 12:24:54 +0100 Subject: [PATCH] Use strlen for INI_* macros strlen() is resolved at compile time by optimizing compilers. Prevent mistakes and allow to use INI_* macros with char * variables which can have sizeof() == 1. Closes GH-5174. --- Zend/zend_ini.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Zend/zend_ini.h b/Zend/zend_ini.h index ba8cc25f0a..3759ca3196 100644 --- a/Zend/zend_ini.h +++ b/Zend/zend_ini.h @@ -138,21 +138,21 @@ END_EXTERN_C() ZEND_INI_ENTRY3_EX(name, default_value, modifiable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr, NULL, zend_ini_boolean_displayer_cb) #endif -#define INI_INT(name) zend_ini_long((name), sizeof(name)-1, 0) -#define INI_FLT(name) zend_ini_double((name), sizeof(name)-1, 0) -#define INI_STR(name) zend_ini_string_ex((name), sizeof(name)-1, 0, NULL) +#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) ((zend_bool) INI_INT(name)) -#define INI_ORIG_INT(name) zend_ini_long((name), sizeof(name)-1, 1) -#define INI_ORIG_FLT(name) zend_ini_double((name), sizeof(name)-1, 1) -#define INI_ORIG_STR(name) zend_ini_string((name), sizeof(name)-1, 1) +#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) ((zend_bool) INI_ORIG_INT(name)) #define REGISTER_INI_ENTRIES() zend_register_ini_entries(ini_entries, module_number) #define UNREGISTER_INI_ENTRIES() zend_unregister_ini_entries(module_number) #define DISPLAY_INI_ENTRIES() display_ini_entries(zend_module) -#define REGISTER_INI_DISPLAYER(name, displayer) zend_ini_register_displayer((name), sizeof(name)-1, displayer) +#define REGISTER_INI_DISPLAYER(name, displayer) zend_ini_register_displayer((name), strlen(name), displayer) #define REGISTER_INI_BOOLEAN(name) REGISTER_INI_DISPLAYER(name, zend_ini_boolean_displayer_cb) /* Standard message handlers */ -- 2.40.0