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