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