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

Reply via email to