dmitry          Mon Jul 10 10:33:43 2006 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/soap/tests/bugs        bug38055.phpt bug38055.wsdl 

  Modified files:              
    /php-src    NEWS 
    /php-src/ext/soap   php_encoding.c 
  Log:
  Fixed bug #38055 (Wrong interpretation of boolean parameters)
  
  
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.114&r2=1.2027.2.547.2.115&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.114 php-src/NEWS:1.2027.2.547.2.115
--- php-src/NEWS:1.2027.2.547.2.114     Mon Jul 10 10:05:19 2006
+++ php-src/NEWS        Mon Jul 10 10:33:42 2006
@@ -82,6 +82,7 @@
 
 - Fixed memory leaks in openssl streams context options. (Pierre)
 - Fixed handling of extremely long paths inside tempnam() function. (Ilia)
+- Fixed bug #38055 (Wrong interpretation of boolean parameters). (Dmitry)
 - Fixed bug #38019 (segfault extending mysqli class). (Dmitry)
 - Fixed bug #38005 (SoapFault faultstring doesn't follow encoding rules).
   (Dmitry)
http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.4&r2=1.103.2.21.2.5&diff_format=u
Index: php-src/ext/soap/php_encoding.c
diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.4 
php-src/ext/soap/php_encoding.c:1.103.2.21.2.5
--- php-src/ext/soap/php_encoding.c:1.103.2.21.2.4      Mon Jul 10 07:21:41 2006
+++ php-src/ext/soap/php_encoding.c     Mon Jul 10 10:33:43 2006
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: php_encoding.c,v 1.103.2.21.2.4 2006/07/10 07:21:41 dmitry Exp $ */
+/* $Id: php_encoding.c,v 1.103.2.21.2.5 2006/07/10 10:33:43 dmitry Exp $ */
 
 #include <time.h>
 
@@ -962,8 +962,13 @@
                                stricmp(data->children->content,"t") == 0 ||
                                strcmp(data->children->content,"1") == 0) {
                                ZVAL_BOOL(ret, 1);
-                       } else {
+                       } else if (stricmp(data->children->content,"false") == 
0 ||
+                               stricmp(data->children->content,"f") == 0 ||
+                               strcmp(data->children->content,"0") == 0) {
                                ZVAL_BOOL(ret, 0);
+                       } else {
+                               ZVAL_STRING(ret, data->children->content, 1);
+                               convert_to_boolean(ret);
                        }
                } else {
                        soap_error0(E_ERROR, "Encoding: Violation of encoding 
rules");
@@ -977,29 +982,17 @@
 static xmlNodePtr to_xml_bool(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);
 
-       if (Z_TYPE_P(data) != IS_BOOL) {
-               tmp = *data;
-               zval_copy_ctor(&tmp);
-               convert_to_boolean(data);
-               data = &tmp;
-       }
-
-       if (data->value.lval == 1) {
+       if (zend_is_true(data)) {
                xmlNodeSetContent(ret, "true");
        } else {
                xmlNodeSetContent(ret, "false");
        }
 
-       if (data == &tmp) {
-               zval_dtor(&tmp);
-       }
-
        if (style == SOAP_ENCODED) {
                set_ns_and_type(ret, type);
        }

http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/bugs/bug38055.phpt?view=markup&rev=1.1
Index: php-src/ext/soap/tests/bugs/bug38055.phpt
+++ php-src/ext/soap/tests/bugs/bug38055.phpt

http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/bugs/bug38055.wsdl?view=markup&rev=1.1
Index: php-src/ext/soap/tests/bugs/bug38055.wsdl
+++ php-src/ext/soap/tests/bugs/bug38055.wsdl

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to