diff options
author | Christian Stocker <chregu@php.net> | 2003-10-27 12:16:35 +0000 |
---|---|---|
committer | Christian Stocker <chregu@php.net> | 2003-10-27 12:16:35 +0000 |
commit | 45614453cdc2e01e2e3c3430816db5b49b8504df (patch) | |
tree | 2f089362146e79c0a1bf4dfb7141172d2df283d9 /ext/xsl | |
parent | 11a63934d43fb1cfbb9b181319e5965b6338d656 (diff) | |
download | php-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.c | 14 |
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); } |