Skip to content

Commit d2ba848

Browse files
mvoriseknikic
authored andcommitted
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.
1 parent 53fc8ef commit d2ba848

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

Zend/zend_ini.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -138,21 +138,21 @@ END_EXTERN_C()
138138
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)
139139
#endif
140140

141-
#define INI_INT(name) zend_ini_long((name), sizeof(name)-1, 0)
142-
#define INI_FLT(name) zend_ini_double((name), sizeof(name)-1, 0)
143-
#define INI_STR(name) zend_ini_string_ex((name), sizeof(name)-1, 0, NULL)
141+
#define INI_INT(name) zend_ini_long((name), strlen(name), 0)
142+
#define INI_FLT(name) zend_ini_double((name), strlen(name), 0)
143+
#define INI_STR(name) zend_ini_string_ex((name), strlen(name), 0, NULL)
144144
#define INI_BOOL(name) ((zend_bool) INI_INT(name))
145145

146-
#define INI_ORIG_INT(name) zend_ini_long((name), sizeof(name)-1, 1)
147-
#define INI_ORIG_FLT(name) zend_ini_double((name), sizeof(name)-1, 1)
148-
#define INI_ORIG_STR(name) zend_ini_string((name), sizeof(name)-1, 1)
146+
#define INI_ORIG_INT(name) zend_ini_long((name), strlen(name), 1)
147+
#define INI_ORIG_FLT(name) zend_ini_double((name), strlen(name), 1)
148+
#define INI_ORIG_STR(name) zend_ini_string((name), strlen(name), 1)
149149
#define INI_ORIG_BOOL(name) ((zend_bool) INI_ORIG_INT(name))
150150

151151
#define REGISTER_INI_ENTRIES() zend_register_ini_entries(ini_entries, module_number)
152152
#define UNREGISTER_INI_ENTRIES() zend_unregister_ini_entries(module_number)
153153
#define DISPLAY_INI_ENTRIES() display_ini_entries(zend_module)
154154

155-
#define REGISTER_INI_DISPLAYER(name, displayer) zend_ini_register_displayer((name), sizeof(name)-1, displayer)
155+
#define REGISTER_INI_DISPLAYER(name, displayer) zend_ini_register_displayer((name), strlen(name), displayer)
156156
#define REGISTER_INI_BOOLEAN(name) REGISTER_INI_DISPLAYER(name, zend_ini_boolean_displayer_cb)
157157

158158
/* Standard message handlers */

0 commit comments

Comments
 (0)