nokogiri-xmlsec1 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +11 -0
  5. data/Gemfile +4 -0
  6. data/Guardfile +13 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +133 -0
  9. data/Rakefile +30 -0
  10. data/dependencies.yml +3 -0
  11. data/ext/nokogiri_ext_xmlsec/extconf.rb +489 -0
  12. data/ext/nokogiri_ext_xmlsec/init.c +46 -0
  13. data/ext/nokogiri_ext_xmlsec/nokogiri_decrypt_with_key.c +124 -0
  14. data/ext/nokogiri_ext_xmlsec/nokogiri_encrypt_with_key.c +182 -0
  15. data/ext/nokogiri_ext_xmlsec/nokogiri_helpers_set_attribute_id.c +43 -0
  16. data/ext/nokogiri_ext_xmlsec/nokogiri_init.c +32 -0
  17. data/ext/nokogiri_ext_xmlsec/nokogiri_sign_certificate.c +104 -0
  18. data/ext/nokogiri_ext_xmlsec/nokogiri_sign_rsa.c +95 -0
  19. data/ext/nokogiri_ext_xmlsec/nokogiri_verify_signature_certificates.c +96 -0
  20. data/ext/nokogiri_ext_xmlsec/nokogiri_verify_signature_named_keys.c +106 -0
  21. data/ext/nokogiri_ext_xmlsec/nokogiri_verify_signature_rsa.c +56 -0
  22. data/ext/nokogiri_ext_xmlsec/shutdown.c +12 -0
  23. data/ext/nokogiri_ext_xmlsec/xmlsecrb.h +39 -0
  24. data/lib/nokogiri-xmlsec.rb +1 -0
  25. data/lib/xmlsec.rb +110 -0
  26. data/lib/xmlsec/version.rb +3 -0
  27. data/nokogiri-xmlsec1.gemspec +46 -0
  28. data/ports/patches/libxml2/0001-Fix-parser-local-buffers-size-problems.patch +265 -0
  29. data/ports/patches/libxml2/0002-Fix-entities-local-buffers-size-problems.patch +102 -0
  30. data/ports/patches/libxml2/0003-Fix-an-error-in-previous-commit.patch +26 -0
  31. data/ports/patches/libxml2/0004-Fix-potential-out-of-bound-access.patch +26 -0
  32. data/ports/patches/libxml2/0005-Detect-excessive-entities-expansion-upon-replacement.patch +158 -0
  33. data/ports/patches/libxml2/0006-Do-not-fetch-external-parsed-entities.patch +78 -0
  34. data/ports/patches/libxml2/0007-Enforce-XML_PARSER_EOF-state-handling-through-the-pa.patch +480 -0
  35. data/ports/patches/libxml2/0008-Improve-handling-of-xmlStopParser.patch +315 -0
  36. data/ports/patches/libxml2/0009-Fix-a-couple-of-return-without-value.patch +37 -0
  37. data/ports/patches/libxml2/0010-Keep-non-significant-blanks-node-in-HTML-parser.patch +2006 -0
  38. data/ports/patches/libxml2/0011-Do-not-fetch-external-parameter-entities.patch +39 -0
  39. data/ports/patches/libxslt/0001-Adding-doc-update-related-to-1.1.28.patch +222 -0
  40. data/ports/patches/libxslt/0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch +53 -0
  41. data/ports/patches/libxslt/0003-Initialize-pseudo-random-number-generator-with-curre.patch +60 -0
  42. data/ports/patches/libxslt/0004-EXSLT-function-str-replace-is-broken-as-is.patch +42 -0
  43. data/ports/patches/libxslt/0006-Fix-str-padding-to-work-with-UTF-8-strings.patch +164 -0
  44. data/ports/patches/libxslt/0007-Separate-function-for-predicate-matching-in-patterns.patch +587 -0
  45. data/ports/patches/libxslt/0008-Fix-direct-pattern-matching.patch +80 -0
  46. data/ports/patches/libxslt/0009-Fix-certain-patterns-with-predicates.patch +185 -0
  47. data/ports/patches/libxslt/0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch +126 -0
  48. data/ports/patches/libxslt/0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch +25 -0
  49. data/ports/patches/libxslt/0014-Fix-for-bug-436589.patch +43 -0
  50. data/ports/patches/libxslt/0015-Fix-mkdir-for-mingw.patch +41 -0
  51. data/ports/patches/xmlsec1/.keep +0 -0
  52. data/spec/fixtures/cert/server.crt +14 -0
  53. data/spec/fixtures/cert/server.csr +11 -0
  54. data/spec/fixtures/cert/server.key.decrypted +15 -0
  55. data/spec/fixtures/cert/server.key.encrypted +18 -0
  56. data/spec/fixtures/rsa.pem +15 -0
  57. data/spec/fixtures/rsa.pub +6 -0
  58. data/spec/fixtures/sign2-doc.xml +6 -0
  59. data/spec/fixtures/sign2-result.xml +24 -0
  60. data/spec/fixtures/sign3-result.xml +37 -0
  61. data/spec/lib/nokogiri/xml/document/encryption_and_decryption_spec.rb +22 -0
  62. data/spec/lib/nokogiri/xml/document/signing_and_verifying_spec.rb +77 -0
  63. data/spec/spec_helper.rb +10 -0
  64. metadata +251 -0
@@ -0,0 +1,39 @@
1
+ From 9cd1c3cfbd32655d60572c0a413e017260c854df Mon Sep 17 00:00:00 2001
2
+ From: Daniel Veillard <veillard@redhat.com>
3
+ Date: Tue, 22 Apr 2014 15:30:56 +0800
4
+ Subject: [PATCH] Do not fetch external parameter entities
5
+
6
+ Unless explicitely asked for when validating or replacing entities
7
+ with their value. Problem pointed out by Daniel Berrange <berrange@redhat.com>
8
+ ---
9
+ parser.c | 14 ++++++++++++++
10
+ 1 file changed, 14 insertions(+)
11
+
12
+ diff --git a/parser.c b/parser.c
13
+ index 9347ac9..c0dea05 100644
14
+ --- a/parser.c
15
+ +++ b/parser.c
16
+ @@ -2598,6 +2598,20 @@ xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) {
17
+ xmlCharEncoding enc;
18
+
19
+ /*
20
+ + * Note: external parsed entities will not be loaded, it is
21
+ + * not required for a non-validating parser, unless the
22
+ + * option of validating, or substituting entities were
23
+ + * given. Doing so is far more secure as the parser will
24
+ + * only process data coming from the document entity by
25
+ + * default.
26
+ + */
27
+ + if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
28
+ + ((ctxt->options & XML_PARSE_NOENT) == 0) &&
29
+ + ((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
30
+ + (ctxt->validate == 0))
31
+ + return;
32
+ +
33
+ + /*
34
+ * handle the extra spaces added before and after
35
+ * c.f. http://www.w3.org/TR/REC-xml#as-PE
36
+ * this is done independently.
37
+ --
38
+ 1.8.3.2
39
+
@@ -0,0 +1,222 @@
1
+ From eb193589a1ff12b4ef23027d5cfed5609f8c0d11 Mon Sep 17 00:00:00 2001
2
+ From: Daniel Veillard <veillard@redhat.com>
3
+ Date: Wed, 21 Nov 2012 15:36:11 +0800
4
+ Subject: [PATCH 01/14] Adding doc update related to 1.1.28
5
+
6
+ ---
7
+ NEWS | 23 +++++++++++++++
8
+ doc/libxslt.xsa | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
9
+ doc/news.html | 25 ++++++++++++++++-
10
+ doc/xslt.html | 25 +++++++++++++++++
11
+ 4 files changed, 152 insertions(+), 8 deletions(-)
12
+
13
+ diff --git a/NEWS b/NEWS
14
+ index cbc1c5e..ff65b6a 100644
15
+ --- a/NEWS
16
+ +++ b/NEWS
17
+ @@ -8,6 +8,29 @@ See the git page at
18
+ http://git.gnome.org/browse/libxslt/
19
+
20
+ to get a description of the recent commits.Those are the public releases made:
21
+ +1.1.28: Nov 21 2012:
22
+ + - Portability:
23
+ + Fix python build by using libxsltmod_la_CPPFLAGS instead of AM_CPPFLAGS (Alexandre Rostovtsev),
24
+ + configure should be more careful with linker script (Igor Pashev),
25
+ + add gcrypt library in LIBADD, not LDFLAGS, as recommended (Roumen Petrov)
26
+ +
27
+ + - Bug fixes:
28
+ + Fix generate-id() to avoid generating the same ID (Stewart Brodie),
29
+ + Fix crash with empty xsl:key/@match attribute (Nick Wellnhofer),
30
+ + Crash when passing an uninitialized variable to document() (Nick Wellnhofer),
31
+ + Add missing test docs to EXTRA_DIST (Nick Wellnhofer),
32
+ + Fix regression: Default namespace not correctly used (Nick Wellnhofer)
33
+ +
34
+ + - Cleanups:
35
+ + Remove xsltTransStorageAdd and xsltTransStorageRemove from symbols.xml (Daniel Veillard),
36
+ + autogen.sh cleanup (Daniel Richard),
37
+ + consistent use of xslt processor (Roumen Petrov),
38
+ + Add object files in tests/plugins to .gitignore (Nick Wellnhofer),
39
+ + Fix error on bug-165 regression test (Daniel Veillard),
40
+ + Remove xsltTransStorageAdd and xsltTransStorageRemove (Daniel Veillard),
41
+ +
42
+ +
43
+ +
44
+ 1.1.27: Sep 12 2012:
45
+ - Portability:
46
+ xincludestyle wasn't protected with LIBXML_XINCLUDE_ENABLED (Michael Bonfils),
47
+ diff --git a/doc/libxslt.xsa b/doc/libxslt.xsa
48
+ index ad3aaf2..04d8c0d 100644
49
+ --- a/doc/libxslt.xsa
50
+ +++ b/doc/libxslt.xsa
51
+ @@ -8,16 +8,89 @@
52
+ </vendor>
53
+ <product id="libxslt">
54
+ <name>libxslt</name>
55
+ - <version>1.1.26</version>
56
+ - <last-release> Sep 24 2009</last-release>
57
+ + <version>1.1.27</version>
58
+ + <last-release> Sep 12 2012</last-release>
59
+ <info-url>http://xmlsoft.org/XSLT/</info-url>
60
+ - <changes> - Improvement:
61
+ - Add xsltProcessOneNode to exported symbols for lxml (Daniel Veillard)
62
+ + <changes> - Portability:
63
+ + xincludestyle wasn't protected with LIBXML_XINCLUDE_ENABLED (Michael Bonfils),
64
+ + Portability fix for testThreads.c (IlyaS),
65
+ + FreeBSD portability fixes (Pedro F. Giffuni),
66
+ + check for gmtime - on mingw* hosts will enable date-time function (Roumen Petrov),
67
+ + use only native crypto-API for mingw* hosts (Roumen Petrov),
68
+ + autogen: Only check for libtoolize (Colin Walters),
69
+ + minimal mingw support (Roumen Petrov),
70
+ + configure: acconfig.h is deprecated since autoconf-2.50 (Stefan Kost),
71
+ + Fix a small out of tree compilation issue (Hao Hu),
72
+ + Fix python generator to not use deprecated xmllib (Daniel Veillard),
73
+ + link python module with python library (Frederic Crozat)
74
+ +
75
+ + - Documentation:
76
+ + Tiny doc improvement (Daniel Veillard),
77
+ + Various documentation fixes for docs on internals (C. M. Sperberg-McQueen)
78
+
79
+ - Bug fixes:
80
+ - Fix an idness generation problem (Daniel Veillard),
81
+ - 595612 Try to fix some locking problems (Daniel Veillard),
82
+ - Fix a crash on misformed imported stylesheets (Daniel Veillard)
83
+ + Report errors on variable use in key (Daniel Veillard),
84
+ + The XSLT namespace string is a constant one (Daniel Veillard),
85
+ + Fix handling of names in xsl:attribute (Nick Wellnhofer),
86
+ + Reserved namespaces in xsl:element and xsl:attribute (Nick Wellnhofer),
87
+ + Null-terminate result string of cry:rc4_decrypt (Nick Wellnhofer),
88
+ + EXSLT date normalization fix (James Muscat),
89
+ + Exit after compilation of invalid func:result (Nick Wellnhofer),
90
+ + Fix for EXSLT func:function (Nick Wellnhofer),
91
+ + Rewrite EXSLT string:replace to be conformant (Nick Wellnhofer),
92
+ + Avoid a heap use after free error (Chris Evans),
93
+ + Fix a dictionary string usage (Chris Evans),
94
+ + Output should not include extraneous newlines when indent is off (Laurence Rowe),
95
+ + document('') fails to return stylesheets parsed from memory (Jason Viers),
96
+ + xsltproc should return an error code if xinclude fails (Malcolm Purvis),
97
+ + Forwards-compatible processing of unknown top level elements (Nick Wellnhofer),
98
+ + Fix system-property with unknown namespace (Nick Wellnhofer),
99
+ + Hardening of code checking node types in EXSLT (Daniel Veillard),
100
+ + Hardening of code checking node types in various entry point (Daniel Veillard),
101
+ + Cleanup of the pattern compilation code (Daniel Veillard),
102
+ + Fix default template processing on namespace nodes (Daniel Veillard),
103
+ + Fix a bug in selecting XSLT elements (Daniel Veillard),
104
+ + Fixed bug #616839 (Daniel Mustieles),
105
+ + Fix some case of pattern parsing errors (Abhishek Arya),
106
+ + preproc: fix the build (Stefan Kost),
107
+ + Fix a memory leak with xsl:number (Daniel Veillard),
108
+ + Fix a problem with ESXLT date:add() with January (money_seshu Dronamraju),
109
+ + Fix a memory leak if compiled with Windows locale support (Daniel Veillard),
110
+ + Fix generate-id() to not expose object addresses (Daniel Veillard),
111
+ + Fix curlies support in literals for non-compiled AVTs (Nick Wellnhofer),
112
+ + Allow whitespace in xsl:variable with select (Nick Wellnhofer),
113
+ + Small fixes to locale code (Nick Wellnhofer),
114
+ + Fix bug 602515 (Nick Wellnhofer),
115
+ + Fix popping of vars in xsltCompilerNodePop (Nick Wellnhofer),
116
+ + Fix direct pattern matching bug (Nick Wellnhofer)
117
+ +
118
+ + - Improvements:
119
+ + Add the saxon:systemId extension (Mike Hommey),
120
+ + Add an append mode to document output (Daniel Veillard),
121
+ + Add new tests to EXTRA_DIST (Nick Wellnhofer),
122
+ + Test for bug #680920 (Nick Wellnhofer),
123
+ + fix regresson in Various "make distcheck" and other fixes (Roumen Petrov),
124
+ + Various "make distcheck" and other fixes (Daniel Richard G),
125
+ + Fix portability to upcoming libxml2-2.9.0 (Daniel Veillard),
126
+ + Adding --system flag support to autogen.sh (Daniel Veillard),
127
+ + Allow per-context override of xsltMaxDepth, introduce xsltMaxVars (Jérôme Carretero),
128
+ + autogen.sh: Honor NOCONFIGURE environment variable (Colin Walters),
129
+ + configure: support silent automake rules if possible (Stefan Kost),
130
+ + Precompile patterns in xsl:number (Nick Wellnhofer),
131
+ + Fix some warnings in the refactored code (Nick Wellnhofer),
132
+ + Adding new generated files (Daniel Veillard),
133
+ + profiling: add callgraph report (Stefan Kost)
134
+ +
135
+ + - Cleanups:
136
+ + Big space and tabs cleanup (Daniel Veillard),
137
+ + Fix authors list (Daniel Veillard),
138
+ + Cleanups some of the test makefiles (Daniel Richard),
139
+ + Remove .cvsignore files which are not needed anymore (Daniel Veillard),
140
+ + Cleanup some misplaced spaces and tabs (Daniel Veillard),
141
+ + Augment list of ignored files (Daniel Veillard),
142
+ + configure: remove checks for isinf and isnan as those are not used anyway (Stefan Kost),
143
+ + Point to GIT for source code and a bit of cleanup (Daniel Veillard),
144
+ + Get rid of specific build setup and STATIC_BINARIES (Daniel Veillard)
145
+
146
+
147
+ </changes>
148
+ diff --git a/doc/news.html b/doc/news.html
149
+ index 15ae10d..60d242e 100644
150
+ --- a/doc/news.html
151
+ +++ b/doc/news.html
152
+ @@ -9,7 +9,30 @@ H3 {font-family: Verdana,Arial,Helvetica}
153
+ A:link, A:visited, A:active { text-decoration: underline }
154
+ </style><title>News</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="GNOME2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for GNOME</h1><h2>News</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
155
+ <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://codespeak.net/lxml/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXSLT">Perl XSLT bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>See the <a href="http://git.gnome.org/browse/libxslt/">git page</a>
156
+ -to get a description of the recent commits.</p><p>Those are the public releases made:</p><h3>1.1.27: Sep 12 2012</h3><ul>
157
+ +to get a description of the recent commits.</p><p>Those are the public releases made:</p><h3>1.1.28: Nov 21 2012</h3><ul>
158
+ + <li> Portability:<br />
159
+ + Fix python build by using libxsltmod_la_CPPFLAGS instead of AM_CPPFLAGS (Alexandre Rostovtsev),<br />
160
+ + configure should be more careful with linker script (Igor Pashev),<br />
161
+ + add gcrypt library in LIBADD, not LDFLAGS, as recommended (Roumen Petrov)<br />
162
+ + </li>
163
+ +
164
+ + <li> Bug fixes:<br />
165
+ + Fix generate-id() to avoid generating the same ID (Stewart Brodie),<br />
166
+ + Fix crash with empty xsl:key/@match attribute (Nick Wellnhofer),<br />
167
+ + Crash when passing an uninitialized variable to document() (Nick Wellnhofer),<br />
168
+ + Add missing test docs to EXTRA_DIST (Nick Wellnhofer),<br />
169
+ + Fix regression: Default namespace not correctly used (Nick Wellnhofer)<br />
170
+ + </li>
171
+ +
172
+ + <li> Cleanups:<br />
173
+ + Remove xsltTransStorageAdd and xsltTransStorageRemove from symbols.xml (Daniel Veillard),<br />
174
+ + autogen.sh cleanup (Daniel Richard),<br />
175
+ + consistent use of xslt processor (Roumen Petrov),<br />
176
+ + Add object files in tests/plugins to .gitignore (Nick Wellnhofer),<br />
177
+ + Fix error on bug-165 regression test (Daniel Veillard),<br />
178
+ + Remove xsltTransStorageAdd and xsltTransStorageRemove (Daniel Veillard),<br />
179
+ + </li>
180
+ +</ul><h3>1.1.27: Sep 12 2012</h3><ul>
181
+ <li> Portability:<br />
182
+ xincludestyle wasn't protected with LIBXML_XINCLUDE_ENABLED (Michael Bonfils),<br />
183
+ Portability fix for testThreads.c (IlyaS),<br />
184
+ diff --git a/doc/xslt.html b/doc/xslt.html
185
+ index f7fb595..71e208f 100644
186
+ --- a/doc/xslt.html
187
+ +++ b/doc/xslt.html
188
+ @@ -305,6 +305,31 @@ to get a description of the recent commits.</p>
189
+
190
+ <p>Those are the public releases made:</p>
191
+
192
+ +<h3>1.1.28: Nov 21 2012</h3>
193
+ +<ul>
194
+ + <li> Portability:<br/>
195
+ + Fix python build by using libxsltmod_la_CPPFLAGS instead of AM_CPPFLAGS (Alexandre Rostovtsev),<br/>
196
+ + configure should be more careful with linker script (Igor Pashev),<br/>
197
+ + add gcrypt library in LIBADD, not LDFLAGS, as recommended (Roumen Petrov)<br/>
198
+ + </li>
199
+ +
200
+ + <li> Bug fixes:<br/>
201
+ + Fix generate-id() to avoid generating the same ID (Stewart Brodie),<br/>
202
+ + Fix crash with empty xsl:key/@match attribute (Nick Wellnhofer),<br/>
203
+ + Crash when passing an uninitialized variable to document() (Nick Wellnhofer),<br/>
204
+ + Add missing test docs to EXTRA_DIST (Nick Wellnhofer),<br/>
205
+ + Fix regression: Default namespace not correctly used (Nick Wellnhofer)<br/>
206
+ + </li>
207
+ +
208
+ + <li> Cleanups:<br/>
209
+ + Remove xsltTransStorageAdd and xsltTransStorageRemove from symbols.xml (Daniel Veillard),<br/>
210
+ + autogen.sh cleanup (Daniel Richard),<br/>
211
+ + consistent use of xslt processor (Roumen Petrov),<br/>
212
+ + Add object files in tests/plugins to .gitignore (Nick Wellnhofer),<br/>
213
+ + Fix error on bug-165 regression test (Daniel Veillard),<br/>
214
+ + Remove xsltTransStorageAdd and xsltTransStorageRemove (Daniel Veillard),<br/>
215
+ + </li>
216
+ +</ul>
217
+ <h3>1.1.27: Sep 12 2012</h3>
218
+ <ul>
219
+ <li> Portability:<br/>
220
+ --
221
+ 1.8.4.1
222
+
@@ -0,0 +1,53 @@
1
+ From 90e8b9066d877e040e791bbf206db0e5653e017a Mon Sep 17 00:00:00 2001
2
+ From: Daniel Veillard <veillard@redhat.com>
3
+ Date: Wed, 30 Jan 2013 17:31:37 +0100
4
+ Subject: [PATCH 02/14] Fix a couple of places where (f)printf parameters were
5
+ broken
6
+
7
+ As reported by Thomas Jarosch <thomas.jarosch@intra2net.com>
8
+ ---
9
+ python/libxslt.c | 10 +++++-----
10
+ xsltproc/xsltproc.c | 2 +-
11
+ 2 files changed, 6 insertions(+), 6 deletions(-)
12
+
13
+ diff --git a/python/libxslt.c b/python/libxslt.c
14
+ index 6a4f1c3..8dd6c78 100644
15
+ --- a/python/libxslt.c
16
+ +++ b/python/libxslt.c
17
+ @@ -356,15 +356,15 @@ libxslt_xsltRegisterExtModuleElement(PyObject *self ATTRIBUTE_UNUSED,
18
+ PyObject *pyobj_element_f;
19
+ PyObject *pyobj_precomp_f;
20
+
21
+ -#ifdef DEBUG_EXTENSIONS
22
+ - printf("libxslt_xsltRegisterExtModuleElement called\n",
23
+ - name, ns_uri);
24
+ -#endif
25
+ -
26
+ if (!PyArg_ParseTuple(args, (char *)"szOO:registerExtModuleElement",
27
+ &name, &ns_uri, &pyobj_precomp_f, &pyobj_element_f))
28
+ return(NULL);
29
+
30
+ +#ifdef DEBUG_EXTENSIONS
31
+ + printf("libxslt_xsltRegisterExtModuleElement called: %s %s\n",
32
+ + name, ns_uri);
33
+ +#endif
34
+ +
35
+ if ((name == NULL) || (pyobj_element_f == NULL) || (pyobj_precomp_f == NULL)) {
36
+ py_retval = libxml_intWrap(-1);
37
+ return(py_retval);
38
+ diff --git a/xsltproc/xsltproc.c b/xsltproc/xsltproc.c
39
+ index 35f37e8..dfd6d31 100644
40
+ --- a/xsltproc/xsltproc.c
41
+ +++ b/xsltproc/xsltproc.c
42
+ @@ -319,7 +319,7 @@ static void endTimer(char *format, ...)
43
+ va_start(ap, format);
44
+ vfprintf(stderr,format,ap);
45
+ va_end(ap);
46
+ - fprintf(stderr, " was not timed\n", msec);
47
+ + fprintf(stderr, " was not timed\n");
48
+ #else
49
+ /* We don't have gettimeofday, time or stdarg.h, what crazy world is
50
+ * this ?!
51
+ --
52
+ 1.8.4.1
53
+
@@ -0,0 +1,60 @@
1
+ From 3fcf11ead6ad226227b0a3ef4cc6565b8d5857ff Mon Sep 17 00:00:00 2001
2
+ From: Nils Werner <wernerns@iis.fraunhofer.de>
3
+ Date: Thu, 24 Jan 2013 19:44:03 +0100
4
+ Subject: [PATCH 03/14] Initialize pseudo random number generator with current
5
+ time or optional command line parameter
6
+
7
+ ---
8
+ xsltproc/xsltproc.c | 15 +++++++++++++++
9
+ 1 file changed, 15 insertions(+)
10
+
11
+ diff --git a/xsltproc/xsltproc.c b/xsltproc/xsltproc.c
12
+ index dfd6d31..45adf5d 100644
13
+ --- a/xsltproc/xsltproc.c
14
+ +++ b/xsltproc/xsltproc.c
15
+ @@ -514,6 +514,7 @@ static void usage(const char *name) {
16
+ printf("\t--maxdepth val : increase the maximum depth (default %d)\n", xsltMaxDepth);
17
+ printf("\t--maxvars val : increase the maximum variables (default %d)\n", xsltMaxVars);
18
+ printf("\t--maxparserdepth val : increase the maximum parser depth\n");
19
+ + printf("\t--seed-rand val : initialize pseudo random number generator with specific seed\n");
20
+ #ifdef LIBXML_HTML_ENABLED
21
+ printf("\t--html: the input document is(are) an HTML file(s)\n");
22
+ #endif
23
+ @@ -556,6 +557,7 @@ main(int argc, char **argv)
24
+ return (1);
25
+ }
26
+
27
+ + srand(time(NULL));
28
+ xmlInitMemory();
29
+
30
+ LIBXML_TEST_VERSION
31
+ @@ -750,6 +752,15 @@ main(int argc, char **argv)
32
+ if (value > 0)
33
+ xmlParserMaxDepth = value;
34
+ }
35
+ + } else if ((!strcmp(argv[i], "-seed-rand")) ||
36
+ + (!strcmp(argv[i], "--seed-rand"))) {
37
+ + int value;
38
+ +
39
+ + i++;
40
+ + if (sscanf(argv[i], "%d", &value) == 1) {
41
+ + if (value > 0)
42
+ + srand(value);
43
+ + }
44
+ } else if ((!strcmp(argv[i],"-dumpextensions"))||
45
+ (!strcmp(argv[i],"--dumpextensions"))) {
46
+ dumpextensions++;
47
+ @@ -786,6 +797,10 @@ main(int argc, char **argv)
48
+ (!strcmp(argv[i], "--maxparserdepth"))) {
49
+ i++;
50
+ continue;
51
+ + } else if ((!strcmp(argv[i], "-seed-rand")) ||
52
+ + (!strcmp(argv[i], "--seed-rand"))) {
53
+ + i++;
54
+ + continue;
55
+ } else if ((!strcmp(argv[i], "-o")) ||
56
+ (!strcmp(argv[i], "-output")) ||
57
+ (!strcmp(argv[i], "--output"))) {
58
+ --
59
+ 1.8.4.1
60
+
@@ -0,0 +1,42 @@
1
+ From ae49d7a73b043bccb7631e7d9577bcaa0bbf8528 Mon Sep 17 00:00:00 2001
2
+ From: Nick Wellnhofer <wellnhofer@aevum.de>
3
+ Date: Mon, 1 Jul 2013 21:10:10 +0800
4
+ Subject: [PATCH 04/14] EXSLT function str:replace() is broken as-is
5
+
6
+ the str:replace() function is no longer usable without a transform
7
+ context. I take it from the bug report that it is not supposed to be used
8
+ from plain XPath but only from XSLT according to the EXSLT specification.
9
+
10
+ However, the previous implementation used to work in XPath and is still
11
+ registered on an xmlXPathContext by the exsltStrXpathCtxtRegister()
12
+ function. When called from plain XPath, it results in a memory error in
13
+ line 526 (exsltStrReturnString()) of strings.c because xsltCreateRVT()
14
+ returns NULL as an error indicator due to a NULL transform context being
15
+ passed in, which was the return value from xsltXPathGetTransformContext() a
16
+ bit further up (and the code doesn't validate that).
17
+
18
+ Since fixing the function looks impossible, best is to remove it.
19
+ ---
20
+ libexslt/strings.c | 6 +-----
21
+ 1 file changed, 1 insertion(+), 5 deletions(-)
22
+
23
+ diff --git a/libexslt/strings.c b/libexslt/strings.c
24
+ index 045cc14..c0c7a18 100644
25
+ --- a/libexslt/strings.c
26
+ +++ b/libexslt/strings.c
27
+ @@ -838,11 +838,7 @@ exsltStrXpathCtxtRegister (xmlXPathContextPtr ctxt, const xmlChar *prefix)
28
+ && !xmlXPathRegisterFuncNS(ctxt,
29
+ (const xmlChar *) "concat",
30
+ (const xmlChar *) EXSLT_STRINGS_NAMESPACE,
31
+ - exsltStrConcatFunction)
32
+ - && !xmlXPathRegisterFuncNS(ctxt,
33
+ - (const xmlChar *) "replace",
34
+ - (const xmlChar *) EXSLT_STRINGS_NAMESPACE,
35
+ - exsltStrReplaceFunction)) {
36
+ + exsltStrConcatFunction)) {
37
+ return 0;
38
+ }
39
+ return -1;
40
+ --
41
+ 1.8.4.1
42
+
@@ -0,0 +1,164 @@
1
+ From 515283959aae470a6ee5033deb9f977a489e7578 Mon Sep 17 00:00:00 2001
2
+ From: Nick Wellnhofer <wellnhofer@aevum.de>
3
+ Date: Sun, 4 Aug 2013 16:42:51 +0200
4
+ Subject: [PATCH 06/14] Fix str:padding to work with UTF-8 strings
5
+
6
+ Thanks to Tobias Hoffmann for the report.
7
+
8
+ Also add some tests.
9
+ ---
10
+ libexslt/strings.c | 16 +++++++++-------
11
+ tests/exslt/strings/padding.1.out | 27 ++++++++++++++++++++++++++
12
+ tests/exslt/strings/padding.1.xml | 10 ++++++++++
13
+ tests/exslt/strings/padding.1.xsl | 40 +++++++++++++++++++++++++++++++++++++++
14
+ 4 files changed, 86 insertions(+), 7 deletions(-)
15
+ create mode 100644 tests/exslt/strings/padding.1.out
16
+ create mode 100644 tests/exslt/strings/padding.1.xml
17
+ create mode 100644 tests/exslt/strings/padding.1.xsl
18
+
19
+ diff --git a/libexslt/strings.c b/libexslt/strings.c
20
+ index c0c7a18..3c702ad 100644
21
+ --- a/libexslt/strings.c
22
+ +++ b/libexslt/strings.c
23
+ @@ -351,8 +351,8 @@ exsltStrDecodeUriFunction (xmlXPathParserContextPtr ctxt, int nargs) {
24
+ */
25
+ static void
26
+ exsltStrPaddingFunction (xmlXPathParserContextPtr ctxt, int nargs) {
27
+ - int number, str_len = 0;
28
+ - xmlChar *str = NULL, *ret = NULL, *tmp;
29
+ + int number, str_len = 0, str_size = 0;
30
+ + xmlChar *str = NULL, *ret = NULL;
31
+
32
+ if ((nargs < 1) || (nargs > 2)) {
33
+ xmlXPathSetArityError(ctxt);
34
+ @@ -362,11 +362,13 @@ exsltStrPaddingFunction (xmlXPathParserContextPtr ctxt, int nargs) {
35
+ if (nargs == 2) {
36
+ str = xmlXPathPopString(ctxt);
37
+ str_len = xmlUTF8Strlen(str);
38
+ + str_size = xmlStrlen(str);
39
+ }
40
+ if (str_len == 0) {
41
+ if (str != NULL) xmlFree(str);
42
+ str = xmlStrdup((const xmlChar *) " ");
43
+ str_len = 1;
44
+ + str_size = 1;
45
+ }
46
+
47
+ number = (int) xmlXPathPopNumber(ctxt);
48
+ @@ -378,13 +380,13 @@ exsltStrPaddingFunction (xmlXPathParserContextPtr ctxt, int nargs) {
49
+ }
50
+
51
+ while (number >= str_len) {
52
+ - ret = xmlStrncat(ret, str, str_len);
53
+ + ret = xmlStrncat(ret, str, str_size);
54
+ number -= str_len;
55
+ }
56
+ - tmp = xmlUTF8Strndup (str, number);
57
+ - ret = xmlStrcat(ret, tmp);
58
+ - if (tmp != NULL)
59
+ - xmlFree (tmp);
60
+ + if (number > 0) {
61
+ + str_size = xmlUTF8Strsize(str, number);
62
+ + ret = xmlStrncat(ret, str, str_size);
63
+ + }
64
+
65
+ xmlXPathReturnString(ctxt, ret);
66
+
67
+ diff --git a/tests/exslt/strings/padding.1.out b/tests/exslt/strings/padding.1.out
68
+ new file mode 100644
69
+ index 0000000..1833a65
70
+ --- /dev/null
71
+ +++ b/tests/exslt/strings/padding.1.out
72
+ @@ -0,0 +1,27 @@
73
+ +<?xml version="1.0"?>
74
+ +<test-results>
75
+ + <test-result>
76
+ + <padding> </padding>
77
+ + <length-check>OK</length-check>
78
+ + </test-result>
79
+ + <test-result>
80
+ + <padding>--------</padding>
81
+ + <length-check>OK</length-check>
82
+ + </test-result>
83
+ + <test-result>
84
+ + <padding>abcabcabca</padding>
85
+ + <length-check>OK</length-check>
86
+ + </test-result>
87
+ + <test-result>
88
+ + <padding>–––––––</padding>
89
+ + <length-check>OK</length-check>
90
+ + </test-result>
91
+ + <test-result>
92
+ + <padding>– – – – – –</padding>
93
+ + <length-check>OK</length-check>
94
+ + </test-result>
95
+ + <test-result>
96
+ + <padding>ÄÖÜÄÖÜ</padding>
97
+ + <length-check>OK</length-check>
98
+ + </test-result>
99
+ +</test-results>
100
+ diff --git a/tests/exslt/strings/padding.1.xml b/tests/exslt/strings/padding.1.xml
101
+ new file mode 100644
102
+ index 0000000..16d0824
103
+ --- /dev/null
104
+ +++ b/tests/exslt/strings/padding.1.xml
105
+ @@ -0,0 +1,10 @@
106
+ +<?xml version="1.0"?>
107
+ +<test-cases>
108
+ + <test-case length="5"/>
109
+ + <test-case length="8">-</test-case>
110
+ + <test-case length="10">abc</test-case>
111
+ + <test-case length="7">&#x2013;</test-case>
112
+ + <test-case length="11">&#x2013;&#xa0;</test-case>
113
+ + <test-case length="6">ÄÖÜ</test-case>
114
+ +</test-cases>
115
+ +
116
+ diff --git a/tests/exslt/strings/padding.1.xsl b/tests/exslt/strings/padding.1.xsl
117
+ new file mode 100644
118
+ index 0000000..c5d621d
119
+ --- /dev/null
120
+ +++ b/tests/exslt/strings/padding.1.xsl
121
+ @@ -0,0 +1,40 @@
122
+ +<?xml version="1.0"?>
123
+ +<xsl:stylesheet version="1.0"
124
+ + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
125
+ + xmlns:str="http://exslt.org/strings"
126
+ + exclude-result-prefixes="str">
127
+ +
128
+ +<xsl:output indent="yes"/>
129
+ +
130
+ +<xsl:template match="test-cases">
131
+ + <test-results>
132
+ + <xsl:apply-templates select="test-case"/>
133
+ + </test-results>
134
+ +</xsl:template>
135
+ +
136
+ +<xsl:template match="test-case">
137
+ + <test-result>
138
+ + <xsl:variable name="padding">
139
+ + <xsl:choose>
140
+ + <xsl:when test="string(.)">
141
+ + <xsl:value-of select="str:padding(@length, .)"/>
142
+ + </xsl:when>
143
+ + <xsl:otherwise>
144
+ + <xsl:value-of select="str:padding(@length)"/>
145
+ + </xsl:otherwise>
146
+ + </xsl:choose>
147
+ + </xsl:variable>
148
+ + <padding>
149
+ + <xsl:value-of select="$padding"/>
150
+ + </padding>
151
+ + <length-check>
152
+ + <xsl:choose>
153
+ + <xsl:when test="string-length($padding) = @length">OK</xsl:when>
154
+ + <xsl:otherwise>FAIL</xsl:otherwise>
155
+ + </xsl:choose>
156
+ + </length-check>
157
+ + </test-result>
158
+ +</xsl:template>
159
+ +
160
+ +</xsl:stylesheet>
161
+ +
162
+ --
163
+ 1.8.4.1
164
+