dmitry          Sun Oct  9 07:31:52 2005 EDT

  Modified files:              
    /php-src/ext/soap   soap.c 
  Log:
  Fixed fault message formatting
  
  
http://cvs.php.net/diff.php/php-src/ext/soap/soap.c?r1=1.163&r2=1.164&ty=u
Index: php-src/ext/soap/soap.c
diff -u php-src/ext/soap/soap.c:1.163 php-src/ext/soap/soap.c:1.164
--- php-src/ext/soap/soap.c:1.163       Wed Oct  5 03:01:44 2005
+++ php-src/ext/soap/soap.c     Sun Oct  9 07:31:51 2005
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: soap.c,v 1.163 2005/10/05 07:01:44 dmitry Exp $ */
+/* $Id: soap.c,v 1.164 2005/10/09 11:31:51 dmitry Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1892,7 +1892,7 @@
                     Z_TYPE_PP(tmp) != IS_BOOL || Z_LVAL_PP(tmp) != 0)) {
                        zval *fault, *exception;
                        char* code = SOAP_GLOBAL(error_code);
-                       char buffer[1024];
+                       char *buffer;
                        int buffer_len;
                        zval outbuf, outbuflen;
                        va_list argcopy;
@@ -1902,20 +1902,17 @@
                        INIT_ZVAL(outbuflen);
 #ifdef va_copy
                        va_copy(argcopy, args);
-                       buffer_len = vsnprintf(buffer, sizeof(buffer)-1, 
format, argcopy);
+                       buffer_len = zend_vspprintf(&buffer, 0, format, 
argcopy);
                        va_end(argcopy);
 #else
-                       buffer_len = vsnprintf(buffer, sizeof(buffer)-1, 
format, args);
+                       buffer_len = zend_vspprintf(&buffer, 0, format, args);
 #endif
-                       buffer[sizeof(buffer)-1]=0;
-                       if (buffer_len > sizeof(buffer) - 1 || buffer_len < 0) {
-                               buffer_len = sizeof(buffer) - 1;
-                       }
 
                        if (code == NULL) {
                                code = "Client";
                        }
                        fault = add_soap_fault(SOAP_GLOBAL(error_object), code, 
buffer, NULL, NULL TSRMLS_CC);
+                       efree(buffer);
                        MAKE_STD_ZVAL(exception);
                        *exception = *fault;
                        zval_copy_ctor(exception);
@@ -1951,7 +1948,7 @@
                    error_num == E_PARSE) {
 
                        char* code = SOAP_GLOBAL(error_code);
-                       char buffer[1024];
+                       char *buffer;
                        int buffer_len;
                        zval *outbuf = NULL;
                        zval outbuflen;
@@ -1960,15 +1957,11 @@
 
 #ifdef va_copy
                        va_copy(argcopy, args);
-                       buffer_len = vsnprintf(buffer, sizeof(buffer)-1, 
format, argcopy);
+                       buffer_len = zend_vspprintf(&buffer, 0, format, 
argcopy);
                        va_end(argcopy);
 #else
-                       buffer_len = vsnprintf(buffer, sizeof(buffer)-1, 
format, args);
+                       buffer_len = zend_vspprintf(&buffer, 0, format, args);
 #endif
-                       buffer[sizeof(buffer)-1]=0;
-                       if (buffer_len > sizeof(buffer) - 1 || buffer_len < 0) {
-                               buffer_len = sizeof(buffer) - 1;
-                       }
 
                        if (code == NULL) {
                                code = "Server";
@@ -1982,6 +1975,7 @@
 
                        INIT_ZVAL(fault_obj);
                        set_soap_fault(&fault_obj, NULL, code, buffer, NULL, 
outbuf, NULL TSRMLS_CC);
+                       efree(buffer);
                        fault = 1;
                }
 

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

Reply via email to