Cannot pass big integers (> 2147483647) in SOAP requests
| Bug #30045 | Cannot pass big integers (> 2147483647) in SOAP requests | ||||
|---|---|---|---|---|---|
| Submitted: | 2004-09-10 03:34 UTC | Modified: | 2004-09-14 14:18 UTC | ||
| From: | paulmonk at shaw dot ca | Assigned: | dmitry (profile) | ||
| Status: | Closed | Package: | SOAP related | ||
| PHP Version: | 5.0.1 | OS: | Windows 2000 | ||
| Private report: | No | CVE-ID: | None | ||
[2004-09-10 03:34 UTC] paulmonk at shaw dot ca
Description: ------------ It seems that xsd:long values > 2147483647 are not represented correctly in SOAP requests/responses. Looks like they are being treated as PHP integers. (Unsigned longs work fine.) Reproduce code: --------------- When I pass the following parameters in a SoapClient::__call(): $long1 = new SoapVar(2147483647, XSD_LONG); $long2 = new SoapVar(2147483648, XSD_LONG); $long3 = new SoapVar(4294967296, XSD_LONG); $long4 = new SoapVar(8589934592, XSD_LONG); $long5 = new SoapVar(17179869184, XSD_LONG); $ulong1 = new SoapVar(2147483647, XSD_UNSIGNEDLONG); $ulong2 = new SoapVar(2147483648, XSD_UNSIGNEDLONG); $ulong3 = new SoapVar(4294967296, XSD_UNSIGNEDLONG); $ulong4 = new SoapVar(8589934592, XSD_UNSIGNEDLONG); $ulong5 = new SoapVar(17179869184, XSD_UNSIGNEDLONG); Expected result: ---------------- The parameters in the SOAP request should be: ... <long1 xsi:type="xsd:long">2147483647</long1> <long2 xsi:type="xsd:long">2147483648</long2> <long3 xsi:type="xsd:long">4294967296</long3> <long4 xsi:type="xsd:long">8589934592</long4> <long5 xsi:type="xsd:long">17179869184</long5> <ulong1 xsi:type="xsd:unsignedLong">2147483647</ulong1> <ulong2 xsi:type="xsd:unsignedLong">2147483648</ulong2> <ulong3 xsi:type="xsd:unsignedLong">4294967296</ulong3> <ulong4 xsi:type="xsd:unsignedLong">8589934592</ulong4> <ulong5 xsi:type="xsd:unsignedLong">17179869184</ulong5> Actual result: -------------- The actual parameters in the SOAP request are: ... <long1 xsi:type="xsd:long">2147483647</long1> <long2 xsi:type="xsd:long">-2147483648</long2> <long3 xsi:type="xsd:long">0</long3> <long4 xsi:type="xsd:long">0</long4> <long5 xsi:type="xsd:long">0</long5> <ulong1 xsi:type="xsd:unsignedLong">2147483647</ulong1> <ulong2 xsi:type="xsd:unsignedLong">2147483648</ulong2> <ulong3 xsi:type="xsd:unsignedLong">4294967296</ulong3> <ulong4 xsi:type="xsd:unsignedLong">8589934592</ulong4> <ulong5 xsi:type="xsd:unsignedLong">17179869184</ulong5>
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2004-09-10 09:19 UTC] derick@php.net
[2004-09-10 10:08 UTC] paulmonk at shaw dot ca
[2004-09-10 10:26 UTC] derick@php.net
[2004-09-14 14:18 UTC] dmitry@php.net