chregu          Mon Oct 27 07:16:35 2003 EDT

  Modified files:              
    /php-src/ext/xsl    xsltprocessor.c 
  Log:
  fix for test Nr 3 bug (not freeing all params)
  
Index: php-src/ext/xsl/xsltprocessor.c
diff -u php-src/ext/xsl/xsltprocessor.c:1.14 php-src/ext/xsl/xsltprocessor.c:1.15
--- php-src/ext/xsl/xsltprocessor.c:1.14        Sun Oct 26 10:57:31 2003
+++ php-src/ext/xsl/xsltprocessor.c     Mon Oct 27 07:16:35 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: xsltprocessor.c,v 1.14 2003/10/26 15:57:31 rrichards Exp $ */
+/* $Id: xsltprocessor.c,v 1.15 2003/10/27 12:16:35 chregu Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -103,7 +103,7 @@
                        if (!xpath_params) {
                                xpath_expr = 
php_xsl_xslt_string_to_xpathexpr(Z_STRVAL_PP(value) TSRMLS_CC);
                        } else {
-                               xpath_expr = Z_STRVAL_PP(value);
+                               xpath_expr = estrndup(Z_STRVAL_PP(value), 
strlen(Z_STRVAL_PP(value)));
                        }
                        if (xpath_expr) {
                                params[i++] = string_key;
@@ -207,6 +207,10 @@
        }
 
        if (params) {
+               clone = 0;
+               while(params[clone]) {
+                       efree(params[clone++]);
+               }
                efree(params);
        }
 
@@ -258,6 +262,10 @@
        }
 
        if (params) {
+               clone = 0;
+               while(params[clone]) {
+                       efree(params[clone++]);
+               }
                efree(params);
        }
 
@@ -311,6 +319,10 @@
        }
 
        if (params) {
+               clone = 0;
+               while(params[clone]) {
+                       efree(params[clone++]);
+               }
                efree(params);
        }
 

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

Reply via email to