?? ??? 2003, Version 4.3.5
- Fixed header handler in NSAPI SAPI module (header->replace was ignored,
send_default_content_type now sends value from php.ini). (Uwe Schindler)
+- Fixed bug #26176 (Fixed handling of numeric keys in INI files). (Ilia)
- Fixed bug #26148 (Print the notice before modifying variable on type
mismatch). (morten-bugs dot php dot net at afdelingp dot dk, Ilia)
- Fixed bug #26128 (mbstring prints out wrong information on phpinfo()).
*element = *arg2;
zval_copy_ctor(element);
INIT_PZVAL(element);
- zend_hash_update(Z_ARRVAL_P(arr), Z_STRVAL_P(arg1), Z_STRLEN_P(arg1)+1, &element, sizeof(zval *), NULL);
+ if (is_numeric_string(Z_STRVAL_P(arg1), Z_STRLEN_P(arg1), NULL, NULL, 0) != IS_LONG) {
+ zend_hash_update(Z_ARRVAL_P(arr), Z_STRVAL_P(arg1), Z_STRLEN_P(arg1)+1, &element, sizeof(zval *), NULL);
+ } else {
+ ulong key = (ulong) zend_atoi(Z_STRVAL_P(arg1), Z_STRLEN_P(arg1));
+ zend_hash_index_update(Z_ARRVAL_P(arr), key, &element, sizeof(zval *), NULL);
+ }
break;
case ZEND_INI_PARSER_SECTION:
*element = *arg2;
zval_copy_ctor(element);
INIT_PZVAL(element);
- zend_hash_update(Z_ARRVAL_P(active_arr), Z_STRVAL_P(arg1),
+ if (is_numeric_string(Z_STRVAL_P(arg1), Z_STRLEN_P(arg1), NULL, NULL, 0) != IS_LONG) {
+ zend_hash_update(Z_ARRVAL_P(active_arr), Z_STRVAL_P(arg1),
Z_STRLEN_P(arg1)+1, &element,
sizeof(zval *), NULL);
+ } else {
+ ulong key = (ulong) zend_atoi(Z_STRVAL_P(arg1), Z_STRLEN_P(arg1));
+ zend_hash_index_update(Z_ARRVAL_P(active_arr), key, &element, sizeof(zval *), NULL);
+ }
}
break;
case ZEND_INI_PARSER_SECTION:
MAKE_STD_ZVAL(BG(active_ini_file_section));
array_init(BG(active_ini_file_section));
- zend_hash_update( Z_ARRVAL_P(arr),
- Z_STRVAL_P(arg1),
- Z_STRLEN_P(arg1)+1,
- &BG(active_ini_file_section),
- sizeof(zval *), NULL);
+ if (is_numeric_string(Z_STRVAL_P(arg1), Z_STRLEN_P(arg1), NULL, NULL, 0) != IS_LONG) {
+ zend_hash_update(Z_ARRVAL_P(arr), Z_STRVAL_P(arg1), Z_STRLEN_P(arg1)+1,
+ &BG(active_ini_file_section), sizeof(zval *), NULL);
+ } else {
+ ulong key = (ulong) zend_atoi(Z_STRVAL_P(arg1), Z_STRLEN_P(arg1));
+ zend_hash_index_update(Z_ARRVAL_P(arr), key, &BG(active_ini_file_section), sizeof(zval *), NULL);
+ }
break;
}
}