dmitry          Thu Aug 26 14:52:57 2004 EDT

  Modified files:              
    /php-src/ext/soap   soap.c 
  Log:
  Memory leaks were fixed
  
  
http://cvs.php.net/diff.php/php-src/ext/soap/soap.c?r1=1.116&r2=1.117&ty=u
Index: php-src/ext/soap/soap.c
diff -u php-src/ext/soap/soap.c:1.116 php-src/ext/soap/soap.c:1.117
--- php-src/ext/soap/soap.c:1.116       Thu Aug 26 08:24:54 2004
+++ php-src/ext/soap/soap.c     Thu Aug 26 14:52:57 2004
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: soap.c,v 1.116 2004/08/26 12:24:54 dmitry Exp $ */
+/* $Id: soap.c,v 1.117 2004/08/26 18:52:57 dmitry Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -394,6 +394,7 @@
        zend_hash_add(&soap_globals->defEncNs, XSD_1999_NAMESPACE, 
sizeof(XSD_1999_NAMESPACE), XSD_NS_PREFIX, sizeof(XSD_NS_PREFIX), NULL);
        zend_hash_add(&soap_globals->defEncNs, XSD_NAMESPACE, sizeof(XSD_NAMESPACE), 
XSD_NS_PREFIX, sizeof(XSD_NS_PREFIX), NULL);
        zend_hash_add(&soap_globals->defEncNs, XSI_NAMESPACE, sizeof(XSI_NAMESPACE), 
XSI_NS_PREFIX, sizeof(XSI_NS_PREFIX), NULL);
+       zend_hash_add(&soap_globals->defEncNs, XML_NAMESPACE, sizeof(XML_NAMESPACE), 
XML_NS_PREFIX, sizeof(XML_NS_PREFIX), NULL);
        zend_hash_add(&soap_globals->defEncNs, SOAP_1_1_ENC_NAMESPACE, 
sizeof(SOAP_1_1_ENC_NAMESPACE), SOAP_1_1_ENC_NS_PREFIX, 
sizeof(SOAP_1_1_ENC_NS_PREFIX), NULL);
        zend_hash_add(&soap_globals->defEncNs, SOAP_1_2_ENC_NAMESPACE, 
sizeof(SOAP_1_2_ENC_NAMESPACE), SOAP_1_2_ENC_NS_PREFIX, 
sizeof(SOAP_1_2_ENC_NS_PREFIX), NULL);
 
@@ -2227,7 +2228,7 @@
        zval *headers = NULL;
        zval *output_headers = NULL;
        zval *args;
-       zval **real_args;
+       zval **real_args = NULL;
        zval **param;
        int arg_count;
 
@@ -2282,18 +2283,22 @@
 
        arg_count = zend_hash_num_elements(Z_ARRVAL_P(args));
 
-       real_args = safe_emalloc(sizeof(zval *), arg_count, 0);
-       for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(args), &pos);
-               zend_hash_get_current_data_ex(Z_ARRVAL_P(args), (void **) &param, 
&pos) == SUCCESS;
-               zend_hash_move_forward_ex(Z_ARRVAL_P(args), &pos)) {
-                       /*zval_add_ref(param);*/
-                       real_args[i++] = *param;
+       if (arg_count > 0) {
+               real_args = safe_emalloc(sizeof(zval *), arg_count, 0);
+               for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(args), &pos);
+                       zend_hash_get_current_data_ex(Z_ARRVAL_P(args), (void **) 
&param, &pos) == SUCCESS;
+                       zend_hash_move_forward_ex(Z_ARRVAL_P(args), &pos)) {
+                               /*zval_add_ref(param);*/
+                               real_args[i++] = *param;
+               }
        }
        if (output_headers) {
                array_init(output_headers);
        }
        do_soap_call(this_ptr, function, function_len, arg_count, real_args, 
return_value, soap_action, uri, soap_headers, output_headers TSRMLS_CC);
-       efree(real_args);
+       if (arg_count > 0) {
+               efree(real_args);
+       }
 
        if (soap_headers && ! headers) {
                zend_hash_destroy(soap_headers);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to