|
1 Taken as it's from: |
|
2 |
|
3 http://git.gnome.org/browse/libxslt/commit/?id=54977ed7966847e305a2008cb18892df26eeb065 |
|
4 |
|
5 Heap-double-free in xmlFreeNodeList |
|
6 http://code.google.com/p/chromium/issues/detail?id=144799 |
|
7 |
|
8 From 54977ed7966847e305a2008cb18892df26eeb065 Mon Sep 17 00:00:00 2001 |
|
9 From: Chris Evans <[email protected]> |
|
10 Date: Mon, 03 Sep 2012 07:50:22 +0000 |
|
11 Subject: Fix a dictionary string usage |
|
12 |
|
13 Raised in chromium, but also affecting xsltproc |
|
14 Also updated AUTHORS to list Chris and other contributors |
|
15 --- |
|
16 diff --git a/AUTHORS b/AUTHORS |
|
17 index 094ebbc..3a70a17 100644 |
|
18 --- a/AUTHORS |
|
19 +++ b/AUTHORS |
|
20 @@ -5,7 +5,7 @@ Daniel Veillard: |
|
21 Used to work at W3C, now Red Hat |
|
22 co-chair of W3C XML Linking WG |
|
23 invited expert on the W3C XML Core WG |
|
24 - Author of libxml upon which this library is based. |
|
25 + Author of libxml2 upon which this library is based. |
|
26 |
|
27 Bjorn Reese: |
|
28 [email protected] |
|
29 @@ -18,3 +18,46 @@ William Brack <[email protected]> |
|
30 Thomas Broyer <[email protected]> |
|
31 |
|
32 Igor Zlatkovic <[email protected]> for the Windows port |
|
33 + |
|
34 +Patches gently provided by a multitude of people : |
|
35 + |
|
36 +Abhishek Arya <[email protected]> |
|
37 +Ben Walton <[email protected]> |
|
38 +Bjorn Reese <[email protected]> |
|
39 +C. M. Sperberg-McQueen <[email protected]> |
|
40 +Colin Walters <[email protected]> |
|
41 +Daniel Mustieles <[email protected]> |
|
42 +Daniel Richard G <[email protected]> |
|
43 +Darin Adler <[email protected]> |
|
44 +ÉRDI Gergo <[email protected]> |
|
45 +Fatih Demir <[email protected]> |
|
46 +Federico Mena Quintero <[email protected]> |
|
47 +Frederic Crozat <[email protected]> |
|
48 +Hao Hu <[email protected]> |
|
49 +Havoc Pennington <[email protected]> |
|
50 +IlyaS <[email protected]> |
|
51 +jacob berkman <[email protected]> |
|
52 +Jason Viers <[email protected]> |
|
53 +Jérôme Carretero <[email protected]> |
|
54 +Joachim Breitner <[email protected]> |
|
55 +Johan Dahlin <[email protected]> |
|
56 +John Fleck <[email protected]> |
|
57 +Jose Maria Celorio <[email protected]> |
|
58 +Julio M. Merino Vidal <[email protected]> |
|
59 +Kasimier T. Buchcik <[email protected]> |
|
60 +Kjartan Maraas <[email protected]> |
|
61 +Laurence Rowe <[email protected]> |
|
62 +Malcolm Purvis <[email protected]> |
|
63 +Martin <[email protected]> |
|
64 +MDT 2002 John Fleck <[email protected]> |
|
65 +Michael Bonfils <[email protected]> |
|
66 +money_seshu Dronamraju <[email protected]> |
|
67 +Nick Wellnhofer <[email protected]> |
|
68 +Nix <[email protected]> |
|
69 +Pedro F. Giffuni <[email protected]> |
|
70 +Peter Williams <[email protected]> |
|
71 +Rob Richards <[email protected]> |
|
72 +Roumen Petrov <[email protected]> |
|
73 +Stefan Kost <[email protected]> |
|
74 +Tomasz Kłoczko <[email protected]> |
|
75 +Chris Evans <[email protected]> |
|
76 diff --git a/libxslt/templates.c b/libxslt/templates.c |
|
77 index 169afd9..4804682 100644 |
|
78 --- a/libxslt/templates.c |
|
79 +++ b/libxslt/templates.c |
|
80 @@ -18,6 +18,7 @@ |
|
81 #include <libxml/globals.h> |
|
82 #include <libxml/xmlerror.h> |
|
83 #include <libxml/tree.h> |
|
84 +#include <libxml/dict.h> |
|
85 #include <libxml/xpathInternals.h> |
|
86 #include <libxml/parserInternals.h> |
|
87 #include "xslt.h" |
|
88 @@ -586,7 +587,8 @@ xsltAttrTemplateProcess(xsltTransformContextPtr ctxt, xmlNodePtr target, |
|
89 } |
|
90 } else if ((ctxt->internalized) && (target != NULL) && |
|
91 (target->doc != NULL) && |
|
92 - (target->doc->dict == ctxt->dict)) { |
|
93 + (target->doc->dict == ctxt->dict) && |
|
94 + xmlDictOwns(ctxt->dict, value)) { |
|
95 text->content = (xmlChar *) value; |
|
96 } else { |
|
97 text->content = xmlStrdup(value); |
|
98 @@ -772,7 +774,8 @@ xsltAttrListTemplateProcess(xsltTransformContextPtr ctxt, |
|
99 } |
|
100 } else if ((ctxt->internalized) && |
|
101 (target->doc != NULL) && |
|
102 - (target->doc->dict == ctxt->dict)) |
|
103 + (target->doc->dict == ctxt->dict) && |
|
104 + xmlDictOwns(ctxt->dict, value)) |
|
105 { |
|
106 text->content = (xmlChar *) value; |
|
107 } else { |
|
108 -- |
|
109 cgit v0.9.0.2 |