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