with ini_set()). (Tony, Dmitry)
- Fixed bug #41555 (configure failure: regression caused by fix for #41265).
(Jani)
+- Fixed bug #41527 (WDDX deserialize numeric string array key). (php_lists
+ at realplain dot com, Ilia)
- Fixed bug #41518 (file_exists() warns of open_basedir restriction on
non-existent file). (Tony)
- Fixed bug #39330 (apache2handler does not call shutdown actions before
--- /dev/null
+--TEST--
+Bug #41527 (WDDX deserialize numeric string array keys)
+--SKIPIF--
+<?php if (!extension_loaded("wddx")) print "skip"; ?>
+--FILE--
+<?php
+$data = array('01' => 'Zero', '+1' => 'Plus sign', ' 1' => 'Space');
+
+var_dump(wddx_deserialize(wddx_serialize_vars('data')));
+?>
+--EXPECT--
+array(1) {
+ ["data"]=>
+ array(3) {
+ ["01"]=>
+ string(4) "Zero"
+ ["+1"]=>
+ string(9) "Plus sign"
+ [" 1"]=>
+ string(5) "Space"
+ }
+}
add_property_zval(ent2->data, ent1->varname, ent1->data);
EG(scope) = old_scope;
} else {
- long l;
- double d;
- int varname_len = strlen(ent1->varname);
-
- switch (is_numeric_string(ent1->varname, varname_len, &l, &d, 0)) {
- case IS_DOUBLE:
- if (d > INT_MAX) {
- goto bigint;
- }
- l = (long) d;
- if (l != d) {
- goto bigint;
- }
- case IS_LONG:
- zend_hash_index_update(target_hash, l, &ent1->data, sizeof(zval *), NULL);
- break;
- default:
-bigint:
- zend_hash_update(target_hash,ent1->varname, varname_len + 1, &ent1->data, sizeof(zval *), NULL);
- }
+ zend_symtable_update(target_hash, ent1->varname, strlen(ent1->varname)+1, &ent1->data, sizeof(zval *), NULL);
}
efree(ent1->varname);
} else {