dmitry Fri Dec 9 10:29:15 2005 EDT Modified files: (Branch: PHP_5_1) /php-src/ext/soap php_encoding.c php_schema.c php_sdl.c soap.c Log: Fixed possible SIGSEGV (Rob Richards) http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.103.2.11&r2=1.103.2.12&ty=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.11 php-src/ext/soap/php_encoding.c:1.103.2.12 --- php-src/ext/soap/php_encoding.c:1.103.2.11 Tue Nov 8 03:30:16 2005 +++ php-src/ext/soap/php_encoding.c Fri Dec 9 10:29:14 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: php_encoding.c,v 1.103.2.11 2005/11/08 08:30:16 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.12 2005/12/09 15:29:14 dmitry Exp $ */ #include <time.h> @@ -268,7 +268,7 @@ if (zend_hash_find(ht, "enc_ns", sizeof("enc_ns"), (void **)&zns) == SUCCESS) { enc = get_encoder(SOAP_GLOBAL(sdl), Z_STRVAL_PP(zns), Z_STRVAL_PP(zstype)); } else { - enc = get_encoder(SOAP_GLOBAL(sdl), NULL, Z_STRVAL_PP(zstype)); + enc = get_encoder_ex(SOAP_GLOBAL(sdl), Z_STRVAL_PP(zstype), Z_STRLEN_PP(zstype)); } } } http://cvs.php.net/diff.php/php-src/ext/soap/php_schema.c?r1=1.58.2.2&r2=1.58.2.3&ty=u Index: php-src/ext/soap/php_schema.c diff -u php-src/ext/soap/php_schema.c:1.58.2.2 php-src/ext/soap/php_schema.c:1.58.2.3 --- php-src/ext/soap/php_schema.c:1.58.2.2 Tue Nov 8 03:30:17 2005 +++ php-src/ext/soap/php_schema.c Fri Dec 9 10:29:14 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: php_schema.c,v 1.58.2.2 2005/11/08 08:30:17 dmitry Exp $ */ +/* $Id: php_schema.c,v 1.58.2.3 2005/12/09 15:29:14 dmitry Exp $ */ #include "php_soap.h" #include "libxml/uri.h" @@ -232,7 +232,11 @@ location = get_attribute(trav->properties, "schemaLocation"); if (ns != NULL && tns != NULL && strcmp(ns->children->content,tns->children->content) == 0) { - soap_error1(E_ERROR, "Parsing Schema: can't import schema from '%s', namespace must not match the enclosing schema 'targetNamespace'", location->children->content); + if (location) { + soap_error1(E_ERROR, "Parsing Schema: can't import schema from '%s', namespace must not match the enclosing schema 'targetNamespace'", location->children->content); + } else { + soap_error0(E_ERROR, "Parsing Schema: can't import schema. Namespace must not match the enclosing schema 'targetNamespace'"); + } } if (location) { xmlChar *base = xmlNodeGetBase(trav->doc, trav); http://cvs.php.net/diff.php/php-src/ext/soap/php_sdl.c?r1=1.88.2.3&r2=1.88.2.4&ty=u Index: php-src/ext/soap/php_sdl.c diff -u php-src/ext/soap/php_sdl.c:1.88.2.3 php-src/ext/soap/php_sdl.c:1.88.2.4 --- php-src/ext/soap/php_sdl.c:1.88.2.3 Mon Nov 28 05:08:34 2005 +++ php-src/ext/soap/php_sdl.c Fri Dec 9 10:29:14 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: php_sdl.c,v 1.88.2.3 2005/11/28 10:08:34 dmitry Exp $ */ +/* $Id: php_sdl.c,v 1.88.2.4 2005/12/09 15:29:14 dmitry Exp $ */ #include "php_soap.h" #include "ext/libxml/php_libxml.h" @@ -410,10 +410,10 @@ if (!h->ns && h->element->namens) { h->ns = estrdup(h->element->namens); } - } - if (h->element->name) { - efree(h->name); - h->name = estrdup(h->element->name); + if (h->element->name) { + efree(h->name); + h->name = estrdup(h->element->name); + } } } } http://cvs.php.net/diff.php/php-src/ext/soap/soap.c?r1=1.156.2.9&r2=1.156.2.10&ty=u Index: php-src/ext/soap/soap.c diff -u php-src/ext/soap/soap.c:1.156.2.9 php-src/ext/soap/soap.c:1.156.2.10 --- php-src/ext/soap/soap.c:1.156.2.9 Mon Dec 5 21:25:31 2005 +++ php-src/ext/soap/soap.c Fri Dec 9 10:29:15 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: soap.c,v 1.156.2.9 2005/12/06 02:25:31 sniper Exp $ */ +/* $Id: soap.c,v 1.156.2.10 2005/12/09 15:29:15 dmitry Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1108,7 +1108,7 @@ #endif -/* {{{ proto object SoapServer::SoapServer ( mixed wsdl [, array options]) +/* {{{ proto object SoapServer::setPersistence ( int mode ) Sets persistence mode of SoapServer */ PHP_METHOD(SoapServer, setPersistence) { @@ -1805,8 +1805,8 @@ /* }}} */ -/* {{{ proto SoapServer::fault - SoapServer::fault */ +/* {{{ proto SoapServer::fault ( staring code, string string [, string actor [, mixed details [, string name]]] ) + Issue SoapFault indicating an error */ PHP_METHOD(SoapServer, fault) { char *code, *string, *actor=NULL, *name=NULL; @@ -2781,25 +2781,25 @@ RETURN_NULL(); } - if (headers == NULL || Z_TYPE_P(headers) == IS_NULL) { + if (headers == NULL || Z_TYPE_P(headers) == IS_NULL) { zend_hash_del(Z_OBJPROP_P(this_ptr), "__default_headers", sizeof("__default_headers")); - } else if (Z_TYPE_P(headers) == IS_ARRAY || Z_TYPE_P(headers) == IS_OBJECT) { + } else if (Z_TYPE_P(headers) == IS_ARRAY) { zval *default_headers; verify_soap_headers_array(Z_ARRVAL_P(headers) TSRMLS_CC); if (zend_hash_find(Z_OBJPROP_P(this_ptr), "__default_headers", sizeof("__default_headers"), (void **) &default_headers)==FAILURE) { add_property_zval(this_ptr, "__default_headers", headers); } - } else if (Z_TYPE_P(headers) == IS_OBJECT && - Z_OBJCE_P(headers) == soap_header_class_entry) { + } else if (Z_TYPE_P(headers) == IS_OBJECT && + Z_OBJCE_P(headers) == soap_header_class_entry) { zval *default_headers; ALLOC_INIT_ZVAL(default_headers); array_init(default_headers); add_next_index_zval(default_headers, headers); add_property_zval(this_ptr, "__default_headers", default_headers); - } else{ - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Invalid SOAP header"); - } + } else{ + php_error_docref(NULL TSRMLS_CC, E_ERROR, "Invalid SOAP header"); + } RETURN_TRUE; } /* }}} */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php