diff options
author | Nick Wellnhofer <wellnhofer@aevum.de> | 2012-08-15 21:09:19 +0200 |
---|---|---|
committer | Daniel Veillard <veillard@redhat.com> | 2012-09-04 14:54:48 +0800 |
commit | aebfee35d1106035dddf897e0e81d72d110b5e63 (patch) | |
tree | 9f9f319d2e1be90a8851e5080bac3f916e62b72e | |
parent | 14ee81b06c12743a88fbc1676f3d35a86a74e08e (diff) | |
download | libxslt-aebfee35d1106035dddf897e0e81d72d110b5e63.tar.gz libxslt-aebfee35d1106035dddf897e0e81d72d110b5e63.tar.bz2 libxslt-aebfee35d1106035dddf897e0e81d72d110b5e63.zip |
Exit after compilation of invalid func:result
Second part of bug #680920.
-rw-r--r-- | libexslt/functions.c | 5 | ||||
-rw-r--r-- | tests/docs/bug-174.xml | 1 | ||||
-rw-r--r-- | tests/general/bug-174.err | 1 | ||||
-rw-r--r-- | tests/general/bug-174.out | 0 | ||||
-rw-r--r-- | tests/general/bug-174.xsl | 18 |
5 files changed, 25 insertions, 0 deletions
diff --git a/libexslt/functions.c b/libexslt/functions.c index e7bb2f14..159e93da 100644 --- a/libexslt/functions.c +++ b/libexslt/functions.c @@ -562,6 +562,7 @@ exsltFuncResultComp (xsltStylesheetPtr style, xmlNodePtr inst, xsltGenericError(xsltGenericErrorContext, "exsltFuncResultElem: only xsl:fallback is " "allowed to follow func:result\n"); + style->errors++; return (NULL); } /* it is an error for a func:result element to not be a descendant @@ -578,6 +579,7 @@ exsltFuncResultComp (xsltStylesheetPtr style, xmlNodePtr inst, xsltGenericError(xsltGenericErrorContext, "func:result element not a descendant " "of a func:function\n"); + style->errors++; return (NULL); } if ((test->ns != NULL) && @@ -589,6 +591,7 @@ exsltFuncResultComp (xsltStylesheetPtr style, xmlNodePtr inst, xsltGenericError(xsltGenericErrorContext, "func:result element not allowed within" " another func:result element\n"); + style->errors++; return (NULL); } } @@ -598,6 +601,7 @@ exsltFuncResultComp (xsltStylesheetPtr style, xmlNodePtr inst, xsltGenericError(xsltGenericErrorContext, "func:result element not allowed within" " a variable binding element\n"); + style->errors++; return (NULL); } } @@ -611,6 +615,7 @@ exsltFuncResultComp (xsltStylesheetPtr style, xmlNodePtr inst, xsltPrintErrorContext(NULL, NULL, NULL); xsltGenericError(xsltGenericErrorContext, "exsltFuncResultComp : malloc failed\n"); + style->errors++; return (NULL); } memset(ret, 0, sizeof(exsltFuncResultPreComp)); diff --git a/tests/docs/bug-174.xml b/tests/docs/bug-174.xml new file mode 100644 index 00000000..69d62f2c --- /dev/null +++ b/tests/docs/bug-174.xml @@ -0,0 +1 @@ +<doc/> diff --git a/tests/general/bug-174.err b/tests/general/bug-174.err new file mode 100644 index 00000000..bc790a39 --- /dev/null +++ b/tests/general/bug-174.err @@ -0,0 +1 @@ +exsltFuncResultElem: only xsl:fallback is allowed to follow func:result diff --git a/tests/general/bug-174.out b/tests/general/bug-174.out new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/tests/general/bug-174.out diff --git a/tests/general/bug-174.xsl b/tests/general/bug-174.xsl new file mode 100644 index 00000000..51991ef5 --- /dev/null +++ b/tests/general/bug-174.xsl @@ -0,0 +1,18 @@ +<xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:func = "http://exslt.org/functions" + version="1.0" extension-element-prefixes="func"> + +<func:function name="func:uaf"> + <func:result/> + <func:result/> +</func:function> + +<xsl:template match="/"> + <result> + <xsl:value-of select="func:uaf()"/> + </result> +</xsl:template> + +</xsl:stylesheet> + |