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