cvs: php-src(PHP_5_0) / NEWS /ext/soap php_encoding.c /ext/soap/tests/bugs bug30045.phpt

From: Date: Tue, 14 Sep 2004 12:13:39 +0000
Subject: cvs: php-src(PHP_5_0) / NEWS /ext/soap php_encoding.c /ext/soap/tests/bugs bug30045.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-28681@lists.php.net to get a copy of this message
dmitry Tue Sep 14 08:13:39 2004 EDT Added files: (Branch: PHP_5_0) /php-src/ext/soap/tests/bugs bug30045.phpt Modified files: /php-src NEWS /php-src/ext/soap php_encoding.c Log: Fixed bug #30045 (Cannot pass big integers (> 2147483647) in SOAP requests) http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1760.2.71&r2=1.1760.2.72&ty=u Index: php-src/NEWS diff -u php-src/NEWS:1.1760.2.71 php-src/NEWS:1.1760.2.72 --- php-src/NEWS:1.1760.2.71 Mon Sep 13 07:54:05 2004 +++ php-src/NEWS Tue Sep 14 08:13:38 2004 @@ -12,6 +12,8 @@ - Renamed SoapClient->__call() to SoapClinet->__soapCall(). (Dmitry) - Fixed bug with raw_post_data not getting set (Brian) - Fixed a file-descriptor leak with phpinfo() and other 'special' URLs (Zeev) +- Fixed bug #30045 (Cannot pass big integers (> 2147483647) in SOAP requests). + (Dmitry) - Fixed bug #29985 (unserialize()/ __PHP_Incomplete_class does not report correctly class name). (Marcus, Tony) - Fixed bug #29945 (simplexml_load_file URL limitation 255 char). (Rob) http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.71.2.5&r2=1.71.2.6&ty=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.71.2.5 php-src/ext/soap/php_encoding.c:1.71.2.6 --- php-src/ext/soap/php_encoding.c:1.71.2.5 Fri Sep 10 05:00:32 2004 +++ php-src/ext/soap/php_encoding.c Tue Sep 14 08:13:38 2004 @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_encoding.c,v 1.71.2.5 2004/09/10 09:00:32 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.71.2.6 2004/09/14 12:13:38 dmitry Exp $ */ #include <time.h> @@ -27,7 +27,6 @@ /* zval type decode */ static zval *to_zval_double(encodeTypePtr type, xmlNodePtr data); static zval *to_zval_long(encodeTypePtr type, xmlNodePtr data); -static zval *to_zval_ulong(encodeTypePtr type, xmlNodePtr data); static zval *to_zval_bool(encodeTypePtr type, xmlNodePtr data); static zval *to_zval_string(encodeTypePtr type, xmlNodePtr data); static zval *to_zval_stringr(encodeTypePtr type, xmlNodePtr data); @@ -37,7 +36,6 @@ static zval *to_zval_null(encodeTypePtr type, xmlNodePtr data); static xmlNodePtr to_xml_long(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_ulong(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); static xmlNodePtr to_xml_double(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); static xmlNodePtr to_xml_bool(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); @@ -161,7 +159,8 @@ {{XSD_UNSIGNEDBYTE, XSD_UNSIGNEDBYTE_STRING, XSD_NAMESPACE, NULL}, to_zval_long, to_xml_long}, {{XSD_UNSIGNEDSHORT, XSD_UNSIGNEDSHORT_STRING, XSD_NAMESPACE, NULL}, to_zval_long, to_xml_long}, {{XSD_UNSIGNEDINT, XSD_UNSIGNEDINT_STRING, XSD_NAMESPACE, NULL}, to_zval_long, to_xml_long}, - {{XSD_UNSIGNEDLONG, XSD_UNSIGNEDLONG_STRING, XSD_NAMESPACE, NULL}, to_zval_ulong, to_xml_ulong}, + {{XSD_UNSIGNEDLONG, XSD_UNSIGNEDLONG_STRING, XSD_NAMESPACE, NULL}, to_zval_long, to_xml_long}, + {{XSD_INTEGER, XSD_INTEGER_STRING, XSD_NAMESPACE, NULL}, to_zval_long, to_xml_long}, {{XSD_ANYTYPE, XSD_ANYTYPE_STRING, XSD_NAMESPACE, NULL}, guess_zval_convert, guess_xml_convert}, {{XSD_UR_TYPE, XSD_UR_TYPE_STRING, XSD_NAMESPACE, NULL}, guess_zval_convert, guess_xml_convert}, @@ -684,25 +683,6 @@ if (data && data->children) { if (data->children->type == XML_TEXT_NODE && data->children->next == NULL) { whiteSpace_collapse(data->children->content); - ZVAL_LONG(ret, atol(data->children->content)); - } else { - soap_error0(E_ERROR, "Encoding: Violation of encoding rules"); - } - } else { - ZVAL_NULL(ret); - } - return ret; -} - -static zval *to_zval_ulong(encodeTypePtr type, xmlNodePtr data) -{ - zval *ret; - MAKE_STD_ZVAL(ret); - FIND_XML_NULL(data, ret); - - if (data && data->children) { - if (data->children->type == XML_TEXT_NODE && data->children->next == NULL) { - whiteSpace_collapse(data->children->content); errno = 0; ret->value.lval = strtol(data->children->content, NULL, 0); if (errno == ERANGE) { /* overflow */ @@ -723,38 +703,15 @@ static xmlNodePtr to_xml_long(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) { xmlNodePtr ret; - zval tmp; - - ret = xmlNewNode(NULL,"BOGUS"); - xmlAddChild(parent, ret); - FIND_ZVAL_NULL(data, ret, style); - - tmp = *data; - zval_copy_ctor(&tmp); - if (Z_TYPE(tmp) != IS_LONG) { - convert_to_long(&tmp); - } - convert_to_string(&tmp); - xmlNodeSetContentLen(ret, Z_STRVAL(tmp), Z_STRLEN(tmp)); - zval_dtor(&tmp); - - if (style == SOAP_ENCODED) { - set_ns_and_type(ret, type); - } - return ret; -} - -static xmlNodePtr to_xml_ulong(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) -{ - xmlNodePtr ret; ret = xmlNewNode(NULL,"BOGUS"); xmlAddChild(parent, ret); FIND_ZVAL_NULL(data, ret, style); if (Z_TYPE_P(data) == IS_DOUBLE) { - char s[16]; - sprintf(s, "%0.0f",Z_DVAL_P(data)); + char s[256]; + + sprintf(s, "%0.0f",floor(Z_DVAL_P(data))); xmlNodeSetContent(ret, s); } else { zval tmp = *data; http://cvs.php.net/co.php/php-src/ext/soap/tests/bugs/bug30045.phpt?r=1.1&p=1 Index: php-src/ext/soap/tests/bugs/bug30045.phpt +++ php-src/ext/soap/tests/bugs/bug30045.phpt

« previous php.cvs (#28681) next »