dmitry Wed Jul 6 02:58:44 2005 EDT
Modified files:
/php-src/ext/soap soap.c
Log:
Fixed SIGSEGV during error processing on some systems (linux/ppc)
http://cvs.php.net/diff.php/php-src/ext/soap/soap.c?r1=1.152&r2=1.153&ty=u
Index: php-src/ext/soap/soap.c
diff -u php-src/ext/soap/soap.c:1.152 php-src/ext/soap/soap.c:1.153
--- php-src/ext/soap/soap.c:1.152 Thu Jun 16 18:35:11 2005
+++ php-src/ext/soap/soap.c Wed Jul 6 02:58:44 2005
@@ -17,7 +17,7 @@
| Dmitry Stogov <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: soap.c,v 1.152 2005/06/16 22:35:11 bfrance Exp $ */
+/* $Id: soap.c,v 1.153 2005/07/06 06:58:44 dmitry Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1939,6 +1939,7 @@
int old = PG(display_errors);
int fault = 0;
zval fault_obj;
+ va_list argcopy;
if (error_num == E_USER_ERROR ||
error_num == E_COMPILE_ERROR ||
@@ -1954,7 +1955,13 @@
INIT_ZVAL(outbuflen);
+#ifdef va_copy
+ va_copy(argcopy, args);
+ buffer_len = vsnprintf(buffer, sizeof(buffer)-1,
format, argcopy);
+ va_end(argcopy);
+#else
buffer_len = vsnprintf(buffer, sizeof(buffer)-1,
format, args);
+#endif
buffer[sizeof(buffer)-1]=0;
if (buffer_len > sizeof(buffer) - 1 || buffer_len < 0) {
buffer_len = sizeof(buffer) - 1;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php