#48557 [Asn->Csd]: Numeric string keys in Apache Hashmaps are not cast to integers
| From: | felipe@php.net | Date: | Mon, 15 Jun 2009 17:37:11 +0000 |
| Subject: | #48557 [Asn->Csd]: Numeric string keys in Apache Hashmaps are not cast to integers | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-138328@lists.php.net to get a copy of this message | ||
ID: 48557
Updated by: felipe@php.net
Reported By: kirila dot adamova at bitextender dot com
-Status: Assigned
+Status: Closed
Bug Type: SOAP related
Operating System: ALL
PHP Version: 5.3.0RC3
Assigned To: dmitry
New Comment:
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
Fixed in 5.2, 5.3 and HEAD. Thanks for the patch. ;)
Previous Comments:
------------------------------------------------------------------------
[2009-06-15 14:16:40] david dot zuelke at bitextender dot com
FYI, the patch is against PHP_5_3
------------------------------------------------------------------------
[2009-06-15 14:11:47] kirila dot adamova at bitextender dot com
Patch updated to use zend_symtable_update() instead of
is_numeric_string() checks.
Test case also updated to reflect the (now correct) handling of string
keys with leading zeros.
All in all a better and simpler patch. Thanks to Matt Wilmas for
pointing this out!
------------------------------------------------------------------------
[2009-06-15 10:38:14] kirila dot adamova at bitextender dot com
Test case: http://pastie.org/512338
WSDL for test: http://pastie.org/512339
Patch: http://pastie.org/512337
------------------------------------------------------------------------
[2009-06-15 10:34:49] kirila dot adamova at bitextender dot com
Description:
------------
When receiving a SOAP response that contains an Apache "Map" encoded
hashmap, PHP will not decode numeric string keys to integers. As a
result, those items in the map are never accessible, because an array
access with a numeric string key implicitly casts the value to an
integer before doing a value lookup.
Reproduce code:
---------------
(test case and patch to be attached)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=48557&edit=1