author | Gabriel Carrillo <gabriel.carrillo@oracle.com> |
Wed, 11 Jun 2014 09:41:54 -0700 | |
branch | s11u1sru20-backport |
changeset 3174 | 3b5835d4aaf3 |
parent 2471 | b1f0e4a84df6 |
permissions | -rw-r--r-- |
2471
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
1 |
Taken as it's from: |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
2 |
|
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
3 |
http://git.gnome.org/browse/libxslt/commit/?id=8566ab4a10158d195adb5f1f61afe1ee8bfebd12 |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
4 |
|
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
5 |
Avoid potential crashes and memory leaks |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
6 |
https://bugzilla.redhat.com/show_bug.cgi?id=852937 |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
7 |
CVE-2012-2870 |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
8 |
|
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
9 |
From 8566ab4a10158d195adb5f1f61afe1ee8bfebd12 Mon Sep 17 00:00:00 2001 |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
10 |
From: Daniel Veillard <[email protected]> |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
11 |
Date: Thu, 09 Aug 2012 07:31:07 +0000 |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
12 |
Subject: Cleanup of the pattern compilation code |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
13 |
|
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
14 |
Avoid potential crashes and memory leaks |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
15 |
--- |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
16 |
diff --git a/libxslt/pattern.c b/libxslt/pattern.c |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
17 |
index 1155b54..a6140cb 100644 |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
18 |
--- a/libxslt/pattern.c |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
19 |
+++ b/libxslt/pattern.c |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
20 |
@@ -303,6 +303,10 @@ xsltCompMatchAdd(xsltParserContextPtr ctxt, xsltCompMatchPtr comp, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
21 |
"xsltCompMatchAdd: memory re-allocation failure.\n"); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
22 |
if (ctxt->style != NULL) |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
23 |
ctxt->style->errors++; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
24 |
+ if (value) |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
25 |
+ xmlFree(value); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
26 |
+ if (value2) |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
27 |
+ xmlFree(value2); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
28 |
return (-1); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
29 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
30 |
comp->maxStep *= 2; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
31 |
@@ -1384,17 +1388,22 @@ xsltCompileIdKeyPattern(xsltParserContextPtr ctxt, xmlChar *name, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
32 |
NEXT; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
33 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
34 |
lit = xsltScanLiteral(ctxt); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
35 |
- if (ctxt->error) |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
36 |
+ if (ctxt->error) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
37 |
+ xsltTransformError(NULL, NULL, NULL, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
38 |
+ "xsltCompileIdKeyPattern : Literal expected\n"); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
39 |
return; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
40 |
+ } |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
41 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
42 |
if (CUR != ')') { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
43 |
xsltTransformError(NULL, NULL, NULL, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
44 |
"xsltCompileIdKeyPattern : ) expected\n"); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
45 |
+ xmlFree(lit); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
46 |
ctxt->error = 1; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
47 |
return; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
48 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
49 |
NEXT; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
50 |
PUSH(XSLT_OP_ID, lit, NULL, novar); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
51 |
+ lit = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
52 |
} else if ((aid) && (xmlStrEqual(name, (const xmlChar *)"key"))) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
53 |
if (axis != 0) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
54 |
xsltTransformError(NULL, NULL, NULL, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
55 |
@@ -1405,8 +1414,11 @@ xsltCompileIdKeyPattern(xsltParserContextPtr ctxt, xmlChar *name, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
56 |
NEXT; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
57 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
58 |
lit = xsltScanLiteral(ctxt); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
59 |
- if (ctxt->error) |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
60 |
+ if (ctxt->error) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
61 |
+ xsltTransformError(NULL, NULL, NULL, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
62 |
+ "xsltCompileIdKeyPattern : Literal expected\n"); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
63 |
return; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
64 |
+ } |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
65 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
66 |
if (CUR != ',') { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
67 |
xsltTransformError(NULL, NULL, NULL, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
68 |
@@ -1417,25 +1429,36 @@ xsltCompileIdKeyPattern(xsltParserContextPtr ctxt, xmlChar *name, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
69 |
NEXT; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
70 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
71 |
lit2 = xsltScanLiteral(ctxt); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
72 |
- if (ctxt->error) |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
73 |
+ if (ctxt->error) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
74 |
+ xsltTransformError(NULL, NULL, NULL, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
75 |
+ "xsltCompileIdKeyPattern : Literal expected\n"); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
76 |
+ xmlFree(lit); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
77 |
return; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
78 |
+ } |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
79 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
80 |
if (CUR != ')') { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
81 |
xsltTransformError(NULL, NULL, NULL, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
82 |
"xsltCompileIdKeyPattern : ) expected\n"); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
83 |
+ xmlFree(lit); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
84 |
+ xmlFree(lit2); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
85 |
ctxt->error = 1; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
86 |
return; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
87 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
88 |
NEXT; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
89 |
/* URGENT TODO: support namespace in keys */ |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
90 |
PUSH(XSLT_OP_KEY, lit, lit2, novar); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
91 |
+ lit = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
92 |
+ lit2 = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
93 |
} else if (xmlStrEqual(name, (const xmlChar *)"processing-instruction")) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
94 |
NEXT; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
95 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
96 |
if (CUR != ')') { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
97 |
lit = xsltScanLiteral(ctxt); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
98 |
- if (ctxt->error) |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
99 |
+ if (ctxt->error) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
100 |
+ xsltTransformError(NULL, NULL, NULL, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
101 |
+ "xsltCompileIdKeyPattern : Literal expected\n"); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
102 |
return; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
103 |
+ } |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
104 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
105 |
if (CUR != ')') { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
106 |
xsltTransformError(NULL, NULL, NULL, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
107 |
@@ -1446,6 +1469,7 @@ xsltCompileIdKeyPattern(xsltParserContextPtr ctxt, xmlChar *name, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
108 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
109 |
NEXT; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
110 |
PUSH(XSLT_OP_PI, lit, NULL, novar); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
111 |
+ lit = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
112 |
} else if (xmlStrEqual(name, (const xmlChar *)"text")) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
113 |
NEXT; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
114 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
115 |
@@ -1496,8 +1520,7 @@ xsltCompileIdKeyPattern(xsltParserContextPtr ctxt, xmlChar *name, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
116 |
return; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
117 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
118 |
error: |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
119 |
- if (name != NULL) |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
120 |
- xmlFree(name); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
121 |
+ return; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
122 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
123 |
|
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
124 |
/** |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
125 |
@@ -1560,6 +1583,8 @@ parse_node_test: |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
126 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
127 |
if (CUR == '(') { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
128 |
xsltCompileIdKeyPattern(ctxt, token, 0, novar, axis); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
129 |
+ xmlFree(token); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
130 |
+ token = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
131 |
if (ctxt->error) |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
132 |
goto error; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
133 |
} else if (CUR == ':') { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
134 |
@@ -1578,20 +1603,24 @@ parse_node_test: |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
135 |
"xsltCompileStepPattern : no namespace bound to prefix %s\n", |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
136 |
prefix); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
137 |
xmlFree(prefix); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
138 |
+ prefix=NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
139 |
ctxt->error = 1; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
140 |
goto error; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
141 |
} else { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
142 |
URL = xmlStrdup(ns->href); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
143 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
144 |
xmlFree(prefix); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
145 |
+ prefix=NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
146 |
if (token == NULL) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
147 |
if (CUR == '*') { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
148 |
NEXT; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
149 |
if (axis == AXIS_ATTRIBUTE) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
150 |
PUSH(XSLT_OP_ATTR, NULL, URL, novar); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
151 |
+ URL = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
152 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
153 |
else { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
154 |
PUSH(XSLT_OP_NS, URL, NULL, novar); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
155 |
+ URL = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
156 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
157 |
} else { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
158 |
xsltTransformError(NULL, NULL, NULL, |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
159 |
@@ -1602,9 +1631,13 @@ parse_node_test: |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
160 |
} else { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
161 |
if (axis == AXIS_ATTRIBUTE) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
162 |
PUSH(XSLT_OP_ATTR, token, URL, novar); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
163 |
+ token = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
164 |
+ URL = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
165 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
166 |
else { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
167 |
PUSH(XSLT_OP_ELEM, token, URL, novar); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
168 |
+ token = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
169 |
+ URL = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
170 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
171 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
172 |
} else { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
173 |
@@ -1626,6 +1659,7 @@ parse_node_test: |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
174 |
goto error; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
175 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
176 |
xmlFree(token); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
177 |
+ token = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
178 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
179 |
token = xsltScanNCName(ctxt); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
180 |
goto parse_node_test; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
181 |
@@ -1640,9 +1674,13 @@ parse_node_test: |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
182 |
URL = xmlStrdup(URI); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
183 |
if (axis == AXIS_ATTRIBUTE) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
184 |
PUSH(XSLT_OP_ATTR, token, URL, novar); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
185 |
+ token = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
186 |
+ URL = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
187 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
188 |
else { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
189 |
PUSH(XSLT_OP_ELEM, token, URL, novar); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
190 |
+ token = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
191 |
+ URL = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
192 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
193 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
194 |
parse_predicate: |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
195 |
@@ -1682,6 +1720,7 @@ parse_predicate: |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
196 |
} |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
197 |
ret = xmlStrndup(q, CUR_PTR - q); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
198 |
PUSH(XSLT_OP_PREDICATE, ret, NULL, novar); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
199 |
+ ret = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
200 |
/* push the predicate lower than local test */ |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
201 |
SWAP(); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
202 |
NEXT; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
203 |
@@ -1790,6 +1829,8 @@ xsltCompileLocationPathPattern(xsltParserContextPtr ctxt, int novar) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
204 |
SKIP_BLANKS; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
205 |
if ((CUR == '(') && !xmlXPathIsNodeType(name)) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
206 |
xsltCompileIdKeyPattern(ctxt, name, 1, novar, 0); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
207 |
+ xmlFree(name); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
208 |
+ name = NULL; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
209 |
if ((CUR == '/') && (NXT(1) == '/')) { |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
210 |
PUSH(XSLT_OP_ANCESTOR, NULL, NULL, novar); |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
211 |
NEXT; |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
212 |
-- |
b1f0e4a84df6
15807903 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
213 |
cgit v0.9.0.2 |