summaryrefslogtreecommitdiff
path: root/ext/xsl
diff options
context:
space:
mode:
authorChristian Stocker <chregu@php.net>2003-10-27 12:16:35 +0000
committerChristian Stocker <chregu@php.net>2003-10-27 12:16:35 +0000
commit45614453cdc2e01e2e3c3430816db5b49b8504df (patch)
tree2f089362146e79c0a1bf4dfb7141172d2df283d9 /ext/xsl
parent11a63934d43fb1cfbb9b181319e5965b6338d656 (diff)
downloadphp-git-45614453cdc2e01e2e3c3430816db5b49b8504df.tar.gz
fix for test Nr 3 bug (not freeing all params)
Diffstat (limited to 'ext/xsl')
-rw-r--r--ext/xsl/xsltprocessor.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/ext/xsl/xsltprocessor.c b/ext/xsl/xsltprocessor.c
index 89dc4c4e04..d5924d9d8b 100644
--- a/ext/xsl/xsltprocessor.c
+++ b/ext/xsl/xsltprocessor.c
@@ -103,7 +103,7 @@ static char **php_xsl_xslt_make_params(HashTable *parht, int xpath_params TSRMLS
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 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_doc)
}
if (params) {
+ clone = 0;
+ while(params[clone]) {
+ efree(params[clone++]);
+ }
efree(params);
}
@@ -258,6 +262,10 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_uri)
}
if (params) {
+ clone = 0;
+ while(params[clone]) {
+ efree(params[clone++]);
+ }
efree(params);
}
@@ -311,6 +319,10 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_xml)
}
if (params) {
+ clone = 0;
+ while(params[clone]) {
+ efree(params[clone++]);
+ }
efree(params);
}