nokogiri 1.6.6.2-java → 1.6.6.3-java
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of nokogiri might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.ja.rdoc +15 -0
- data/CHANGELOG.rdoc +15 -0
- data/Manifest.txt +7 -0
- data/lib/nokogiri/nokogiri.jar +0 -0
- data/lib/nokogiri/version.rb +1 -1
- data/ports/patches/libxml2/0003-Stop-parsing-on-entities-boundaries-errors.patch +32 -0
- data/ports/patches/libxml2/0004-Cleanup-conditional-section-error-handling.patch +49 -0
- data/ports/patches/libxml2/0005-CVE-2015-1819-Enforce-the-reader-to-run-in-constant-.patch +177 -0
- data/ports/patches/libxml2/0006-Another-variation-of-overflow-in-Conditional-section.patch +32 -0
- data/ports/patches/libxml2/0007-Fix-an-error-in-previous-Conditional-section-patch.patch +28 -0
- data/ports/patches/libxml2/0008-CVE-2015-8035-Fix-XZ-compression-support-loop.patch +31 -0
- data/ports/patches/libxslt/0016-Fix-for-type-confusion-in-preprocessing-attributes.patch +29 -0
- data/test_all +3 -3
- metadata +14 -77
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae89053e5784e4c1a057862f583ac6648ab9bc0c
|
4
|
+
data.tar.gz: 61ebd1a5ab0fa50d67db56b521586a75b2b804eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e697f04c52deb9d99c8e7db453fb897ecf3c3dd90dfeb50b9d6545345cbe03b9471ae5df72faa95dc0ec0314fe803a5b9219ad0d8088ed061309c2cef1a20176
|
7
|
+
data.tar.gz: d3bfbdc091286f7e4f9dcadd2b79ebe13fe71aa23af6efa56909bb4d2bf5c50f573cd319ccf72f6c7460f59a4ed3df8f211e9f347e89de81446738734c27a53f
|
data/CHANGELOG.ja.rdoc
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
=== 1.6.6.3 / 2015-11-16
|
2
|
+
|
3
|
+
This version pulls in several upstream patches to the vendored libxml2 and libxslt to address:
|
4
|
+
|
5
|
+
* CVE-2015-1819
|
6
|
+
* CVE-2015-7941_1
|
7
|
+
* CVE-2015-7941_2
|
8
|
+
* CVE-2015-7942
|
9
|
+
* CVE-2015-7942-2
|
10
|
+
* CVE-2015-8035
|
11
|
+
* CVE-2015-7995
|
12
|
+
|
13
|
+
See #1374 for details.
|
14
|
+
|
15
|
+
|
1
16
|
=== 1.6.6.2 / 2015年01月23日
|
2
17
|
|
3
18
|
==== Bug fixes
|
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
=== 1.6.6.3 / 2015-11-16
|
2
|
+
|
3
|
+
This version pulls in several upstream patches to the vendored libxml2 and libxslt to address:
|
4
|
+
|
5
|
+
* CVE-2015-1819
|
6
|
+
* CVE-2015-7941_1
|
7
|
+
* CVE-2015-7941_2
|
8
|
+
* CVE-2015-7942
|
9
|
+
* CVE-2015-7942-2
|
10
|
+
* CVE-2015-8035
|
11
|
+
* CVE-2015-7995
|
12
|
+
|
13
|
+
See #1374 for details.
|
14
|
+
|
15
|
+
|
1
16
|
=== 1.6.6.2 / 2015-01-23
|
2
17
|
|
3
18
|
==== Bug fixes
|
data/Manifest.txt
CHANGED
@@ -244,6 +244,12 @@ lib/xercesImpl.jar
|
|
244
244
|
lib/xsd/xmlparser/nokogiri.rb
|
245
245
|
ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch
|
246
246
|
ports/patches/libxml2/0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch
|
247
|
+
ports/patches/libxml2/0003-Stop-parsing-on-entities-boundaries-errors.patch
|
248
|
+
ports/patches/libxml2/0004-Cleanup-conditional-section-error-handling.patch
|
249
|
+
ports/patches/libxml2/0005-CVE-2015-1819-Enforce-the-reader-to-run-in-constant-.patch
|
250
|
+
ports/patches/libxml2/0006-Another-variation-of-overflow-in-Conditional-section.patch
|
251
|
+
ports/patches/libxml2/0007-Fix-an-error-in-previous-Conditional-section-patch.patch
|
252
|
+
ports/patches/libxml2/0008-CVE-2015-8035-Fix-XZ-compression-support-loop.patch
|
247
253
|
ports/patches/libxslt/0001-Adding-doc-update-related-to-1.1.28.patch
|
248
254
|
ports/patches/libxslt/0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch
|
249
255
|
ports/patches/libxslt/0003-Initialize-pseudo-random-number-generator-with-curre.patch
|
@@ -256,6 +262,7 @@ ports/patches/libxslt/0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.
|
|
256
262
|
ports/patches/libxslt/0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch
|
257
263
|
ports/patches/libxslt/0014-Fix-for-bug-436589.patch
|
258
264
|
ports/patches/libxslt/0015-Fix-mkdir-for-mingw.patch
|
265
|
+
ports/patches/libxslt/0016-Fix-for-type-confusion-in-preprocessing-attributes.patch
|
259
266
|
ports/patches/sort-patches-by-date
|
260
267
|
suppressions/README.txt
|
261
268
|
suppressions/nokogiri_ree-1.8.7.358.supp
|
data/lib/nokogiri/nokogiri.jar
CHANGED
Binary file
|
data/lib/nokogiri/version.rb
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
From 99d99063ae5c4b6bd2b58324273401f3ce42a550 Mon Sep 17 00:00:00 2001
|
2
|
+
From: Daniel Veillard <veillard@redhat.com>
|
3
|
+
Date: Mon, 23 Feb 2015 11:17:35 +0800
|
4
|
+
Subject: [PATCH 3/8] Stop parsing on entities boundaries errors
|
5
|
+
|
6
|
+
For https://bugzilla.gnome.org/show_bug.cgi?id=744980
|
7
|
+
|
8
|
+
There are times, like on unterminated entities that it's preferable to
|
9
|
+
stop parsing, even if that means less error reporting. Entities are
|
10
|
+
feeding the parser on further processing, and if they are ill defined
|
11
|
+
then it's possible to get the parser to bug. Also do the same on
|
12
|
+
Conditional Sections if the input is broken, as the structure of
|
13
|
+
the document can't be guessed.
|
14
|
+
---
|
15
|
+
parser.c | 1 +
|
16
|
+
1 file changed, 1 insertion(+)
|
17
|
+
|
18
|
+
diff --git a/parser.c b/parser.c
|
19
|
+
index 1d93967..7b0380c 100644
|
20
|
+
--- a/parser.c
|
21
|
+
+++ b/parser.c
|
22
|
+
@@ -5658,6 +5658,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) {
|
23
|
+
if (RAW != '>') {
|
24
|
+
xmlFatalErrMsgStr(ctxt, XML_ERR_ENTITY_NOT_FINISHED,
|
25
|
+
"xmlParseEntityDecl: entity %s not terminated\n", name);
|
26
|
+
+ xmlStopParser(ctxt);
|
27
|
+
} else {
|
28
|
+
if (input != ctxt->input) {
|
29
|
+
xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
|
30
|
+
--
|
31
|
+
2.5.0
|
32
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
From c8d3950c5532c2e3d954bacdb8c479bb9fdacf89 Mon Sep 17 00:00:00 2001
|
2
|
+
From: Daniel Veillard <veillard@redhat.com>
|
3
|
+
Date: Mon, 23 Feb 2015 11:29:20 +0800
|
4
|
+
Subject: [PATCH 4/8] Cleanup conditional section error handling
|
5
|
+
|
6
|
+
For https://bugzilla.gnome.org/show_bug.cgi?id=744980
|
7
|
+
|
8
|
+
The error handling of Conditional Section also need to be
|
9
|
+
straightened as the structure of the document can't be
|
10
|
+
guessed on a failure there and it's better to stop parsing
|
11
|
+
as further errors are likely to be irrelevant.
|
12
|
+
---
|
13
|
+
parser.c | 6 ++++++
|
14
|
+
1 file changed, 6 insertions(+)
|
15
|
+
|
16
|
+
diff --git a/parser.c b/parser.c
|
17
|
+
index 7b0380c..1e714e7 100644
|
18
|
+
--- a/parser.c
|
19
|
+
+++ b/parser.c
|
20
|
+
@@ -6770,6 +6770,8 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) {
|
21
|
+
SKIP_BLANKS;
|
22
|
+
if (RAW != '[') {
|
23
|
+
xmlFatalErr(ctxt, XML_ERR_CONDSEC_INVALID, NULL);
|
24
|
+
+ xmlStopParser(ctxt);
|
25
|
+
+ return;
|
26
|
+
} else {
|
27
|
+
if (ctxt->input->id != id) {
|
28
|
+
xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
|
29
|
+
@@ -6830,6 +6832,8 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) {
|
30
|
+
SKIP_BLANKS;
|
31
|
+
if (RAW != '[') {
|
32
|
+
xmlFatalErr(ctxt, XML_ERR_CONDSEC_INVALID, NULL);
|
33
|
+
+ xmlStopParser(ctxt);
|
34
|
+
+ return;
|
35
|
+
} else {
|
36
|
+
if (ctxt->input->id != id) {
|
37
|
+
xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
|
38
|
+
@@ -6885,6 +6889,8 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) {
|
39
|
+
|
40
|
+
} else {
|
41
|
+
xmlFatalErr(ctxt, XML_ERR_CONDSEC_INVALID_KEYWORD, NULL);
|
42
|
+
+ xmlStopParser(ctxt);
|
43
|
+
+ return;
|
44
|
+
}
|
45
|
+
|
46
|
+
if (RAW == 0)
|
47
|
+
--
|
48
|
+
2.5.0
|
49
|
+
|
@@ -0,0 +1,177 @@
|
|
1
|
+
From 12f31177b0d9be57ed8fb3467b501606fb145286 Mon Sep 17 00:00:00 2001
|
2
|
+
From: Daniel Veillard <veillard@redhat.com>
|
3
|
+
Date: Tue, 14 Apr 2015 17:41:48 +0800
|
4
|
+
Subject: [PATCH 5/8] CVE-2015-1819 Enforce the reader to run in constant
|
5
|
+
memory
|
6
|
+
|
7
|
+
One of the operation on the reader could resolve entities
|
8
|
+
leading to the classic expansion issue. Make sure the
|
9
|
+
buffer used for xmlreader operation is bounded.
|
10
|
+
Introduce a new allocation type for the buffers for this effect.
|
11
|
+
---
|
12
|
+
buf.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
|
13
|
+
include/libxml/tree.h | 3 ++-
|
14
|
+
xmlreader.c | 20 +++++++++++++++++++-
|
15
|
+
3 files changed, 63 insertions(+), 3 deletions(-)
|
16
|
+
|
17
|
+
diff --git a/buf.c b/buf.c
|
18
|
+
index 6efc7b6..07922ff 100644
|
19
|
+
--- a/buf.c
|
20
|
+
+++ b/buf.c
|
21
|
+
@@ -27,6 +27,7 @@
|
22
|
+
#include <libxml/tree.h>
|
23
|
+
#include <libxml/globals.h>
|
24
|
+
#include <libxml/tree.h>
|
25
|
+
+#include <libxml/parserInternals.h> /* for XML_MAX_TEXT_LENGTH */
|
26
|
+
#include "buf.h"
|
27
|
+
|
28
|
+
#define WITH_BUFFER_COMPAT
|
29
|
+
@@ -299,7 +300,8 @@ xmlBufSetAllocationScheme(xmlBufPtr buf,
|
30
|
+
if ((scheme == XML_BUFFER_ALLOC_DOUBLEIT) ||
|
31
|
+
(scheme == XML_BUFFER_ALLOC_EXACT) ||
|
32
|
+
(scheme == XML_BUFFER_ALLOC_HYBRID) ||
|
33
|
+
- (scheme == XML_BUFFER_ALLOC_IMMUTABLE)) {
|
34
|
+
+ (scheme == XML_BUFFER_ALLOC_IMMUTABLE) ||
|
35
|
+
+ (scheme == XML_BUFFER_ALLOC_BOUNDED)) {
|
36
|
+
buf->alloc = scheme;
|
37
|
+
if (buf->buffer)
|
38
|
+
buf->buffer->alloc = scheme;
|
39
|
+
@@ -458,6 +460,18 @@ xmlBufGrowInternal(xmlBufPtr buf, size_t len) {
|
40
|
+
size = buf->use + len + 100;
|
41
|
+
#endif
|
42
|
+
|
43
|
+
+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) {
|
44
|
+
+ /*
|
45
|
+
+ * Used to provide parsing limits
|
46
|
+
+ */
|
47
|
+
+ if ((buf->use + len >= XML_MAX_TEXT_LENGTH) ||
|
48
|
+
+ (buf->size >= XML_MAX_TEXT_LENGTH)) {
|
49
|
+
+ xmlBufMemoryError(buf, "buffer error: text too long\n");
|
50
|
+
+ return(0);
|
51
|
+
+ }
|
52
|
+
+ if (size >= XML_MAX_TEXT_LENGTH)
|
53
|
+
+ size = XML_MAX_TEXT_LENGTH;
|
54
|
+
+ }
|
55
|
+
if ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL)) {
|
56
|
+
size_t start_buf = buf->content - buf->contentIO;
|
57
|
+
|
58
|
+
@@ -739,6 +753,15 @@ xmlBufResize(xmlBufPtr buf, size_t size)
|
59
|
+
CHECK_COMPAT(buf)
|
60
|
+
|
61
|
+
if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return(0);
|
62
|
+
+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) {
|
63
|
+
+ /*
|
64
|
+
+ * Used to provide parsing limits
|
65
|
+
+ */
|
66
|
+
+ if (size >= XML_MAX_TEXT_LENGTH) {
|
67
|
+
+ xmlBufMemoryError(buf, "buffer error: text too long\n");
|
68
|
+
+ return(0);
|
69
|
+
+ }
|
70
|
+
+ }
|
71
|
+
|
72
|
+
/* Don't resize if we don't have to */
|
73
|
+
if (size < buf->size)
|
74
|
+
@@ -867,6 +890,15 @@ xmlBufAdd(xmlBufPtr buf, const xmlChar *str, int len) {
|
75
|
+
|
76
|
+
needSize = buf->use + len + 2;
|
77
|
+
if (needSize > buf->size){
|
78
|
+
+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) {
|
79
|
+
+ /*
|
80
|
+
+ * Used to provide parsing limits
|
81
|
+
+ */
|
82
|
+
+ if (needSize >= XML_MAX_TEXT_LENGTH) {
|
83
|
+
+ xmlBufMemoryError(buf, "buffer error: text too long\n");
|
84
|
+
+ return(-1);
|
85
|
+
+ }
|
86
|
+
+ }
|
87
|
+
if (!xmlBufResize(buf, needSize)){
|
88
|
+
xmlBufMemoryError(buf, "growing buffer");
|
89
|
+
return XML_ERR_NO_MEMORY;
|
90
|
+
@@ -938,6 +970,15 @@ xmlBufAddHead(xmlBufPtr buf, const xmlChar *str, int len) {
|
91
|
+
}
|
92
|
+
needSize = buf->use + len + 2;
|
93
|
+
if (needSize > buf->size){
|
94
|
+
+ if (buf->alloc == XML_BUFFER_ALLOC_BOUNDED) {
|
95
|
+
+ /*
|
96
|
+
+ * Used to provide parsing limits
|
97
|
+
+ */
|
98
|
+
+ if (needSize >= XML_MAX_TEXT_LENGTH) {
|
99
|
+
+ xmlBufMemoryError(buf, "buffer error: text too long\n");
|
100
|
+
+ return(-1);
|
101
|
+
+ }
|
102
|
+
+ }
|
103
|
+
if (!xmlBufResize(buf, needSize)){
|
104
|
+
xmlBufMemoryError(buf, "growing buffer");
|
105
|
+
return XML_ERR_NO_MEMORY;
|
106
|
+
diff --git a/include/libxml/tree.h b/include/libxml/tree.h
|
107
|
+
index 2f90717..4a9b3bc 100644
|
108
|
+
--- a/include/libxml/tree.h
|
109
|
+
+++ b/include/libxml/tree.h
|
110
|
+
@@ -76,7 +76,8 @@ typedef enum {
|
111
|
+
XML_BUFFER_ALLOC_EXACT, /* grow only to the minimal size */
|
112
|
+
XML_BUFFER_ALLOC_IMMUTABLE, /* immutable buffer */
|
113
|
+
XML_BUFFER_ALLOC_IO, /* special allocation scheme used for I/O */
|
114
|
+
- XML_BUFFER_ALLOC_HYBRID /* exact up to a threshold, and doubleit thereafter */
|
115
|
+
+ XML_BUFFER_ALLOC_HYBRID, /* exact up to a threshold, and doubleit thereafter */
|
116
|
+
+ XML_BUFFER_ALLOC_BOUNDED /* limit the upper size of the buffer */
|
117
|
+
} xmlBufferAllocationScheme;
|
118
|
+
|
119
|
+
/**
|
120
|
+
diff --git a/xmlreader.c b/xmlreader.c
|
121
|
+
index f19e123..471e7e2 100644
|
122
|
+
--- a/xmlreader.c
|
123
|
+
+++ b/xmlreader.c
|
124
|
+
@@ -2091,6 +2091,9 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) {
|
125
|
+
"xmlNewTextReader : malloc failed\n");
|
126
|
+
return(NULL);
|
127
|
+
}
|
128
|
+
+ /* no operation on a reader should require a huge buffer */
|
129
|
+
+ xmlBufSetAllocationScheme(ret->buffer,
|
130
|
+
+ XML_BUFFER_ALLOC_BOUNDED);
|
131
|
+
ret->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler));
|
132
|
+
if (ret->sax == NULL) {
|
133
|
+
xmlBufFree(ret->buffer);
|
134
|
+
@@ -3616,6 +3619,7 @@ xmlTextReaderConstValue(xmlTextReaderPtr reader) {
|
135
|
+
return(((xmlNsPtr) node)->href);
|
136
|
+
case XML_ATTRIBUTE_NODE:{
|
137
|
+
xmlAttrPtr attr = (xmlAttrPtr) node;
|
138
|
+
+ const xmlChar *ret;
|
139
|
+
|
140
|
+
if ((attr->children != NULL) &&
|
141
|
+
(attr->children->type == XML_TEXT_NODE) &&
|
142
|
+
@@ -3629,10 +3633,21 @@ xmlTextReaderConstValue(xmlTextReaderPtr reader) {
|
143
|
+
"xmlTextReaderSetup : malloc failed\n");
|
144
|
+
return (NULL);
|
145
|
+
}
|
146
|
+
+ xmlBufSetAllocationScheme(reader->buffer,
|
147
|
+
+ XML_BUFFER_ALLOC_BOUNDED);
|
148
|
+
} else
|
149
|
+
xmlBufEmpty(reader->buffer);
|
150
|
+
xmlBufGetNodeContent(reader->buffer, node);
|
151
|
+
- return(xmlBufContent(reader->buffer));
|
152
|
+
+ ret = xmlBufContent(reader->buffer);
|
153
|
+
+ if (ret == NULL) {
|
154
|
+
+ /* error on the buffer best to reallocate */
|
155
|
+
+ xmlBufFree(reader->buffer);
|
156
|
+
+ reader->buffer = xmlBufCreateSize(100);
|
157
|
+
+ xmlBufSetAllocationScheme(reader->buffer,
|
158
|
+
+ XML_BUFFER_ALLOC_BOUNDED);
|
159
|
+
+ ret = BAD_CAST "";
|
160
|
+
+ }
|
161
|
+
+ return(ret);
|
162
|
+
}
|
163
|
+
break;
|
164
|
+
}
|
165
|
+
@@ -5131,6 +5146,9 @@ xmlTextReaderSetup(xmlTextReaderPtr reader,
|
166
|
+
"xmlTextReaderSetup : malloc failed\n");
|
167
|
+
return (-1);
|
168
|
+
}
|
169
|
+
+ /* no operation on a reader should require a huge buffer */
|
170
|
+
+ xmlBufSetAllocationScheme(reader->buffer,
|
171
|
+
+ XML_BUFFER_ALLOC_BOUNDED);
|
172
|
+
if (reader->sax == NULL)
|
173
|
+
reader->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler));
|
174
|
+
if (reader->sax == NULL) {
|
175
|
+
--
|
176
|
+
2.5.0
|
177
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
From 9ee30e69f63379b3caf451aa7ae4058a1fa2fa73 Mon Sep 17 00:00:00 2001
|
2
|
+
From: Daniel Veillard <veillard@redhat.com>
|
3
|
+
Date: Fri, 23 Oct 2015 19:02:28 +0800
|
4
|
+
Subject: [PATCH 6/8] Another variation of overflow in Conditional sections
|
5
|
+
|
6
|
+
Which happen after the previous fix to
|
7
|
+
https://bugzilla.gnome.org/show_bug.cgi?id=756456
|
8
|
+
|
9
|
+
But stopping the parser and exiting we didn't pop the intermediary entities
|
10
|
+
and doing the SKIP there applies on an input which may be too small
|
11
|
+
---
|
12
|
+
parser.c | 4 +++-
|
13
|
+
1 file changed, 3 insertions(+), 1 deletion(-)
|
14
|
+
|
15
|
+
diff --git a/parser.c b/parser.c
|
16
|
+
index 1e714e7..0b8d633 100644
|
17
|
+
--- a/parser.c
|
18
|
+
+++ b/parser.c
|
19
|
+
@@ -6904,7 +6904,9 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) {
|
20
|
+
"All markup of the conditional section is not in the same entity\n",
|
21
|
+
NULL, NULL);
|
22
|
+
}
|
23
|
+
- SKIP(3);
|
24
|
+
+ if ((ctxt-> instate != XML_PARSER_EOF) &&
|
25
|
+
+ ((ctxt->input->cur + 3) < ctxt->input->end))
|
26
|
+
+ SKIP(3);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
--
|
31
|
+
2.5.0
|
32
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
From 587f0e0133f51f3e09d1166cc0f6b24b50ddb357 Mon Sep 17 00:00:00 2001
|
2
|
+
From: Daniel Veillard <veillard@redhat.com>
|
3
|
+
Date: Tue, 27 Oct 2015 10:53:44 +0800
|
4
|
+
Subject: [PATCH 7/8] Fix an error in previous Conditional section patch
|
5
|
+
|
6
|
+
an off by one mistake in the change, led to error on correct
|
7
|
+
document where the end of the included entity was exactly
|
8
|
+
the end of the conditional section, leading to regtest failure
|
9
|
+
---
|
10
|
+
parser.c | 2 +-
|
11
|
+
1 file changed, 1 insertion(+), 1 deletion(-)
|
12
|
+
|
13
|
+
diff --git a/parser.c b/parser.c
|
14
|
+
index 0b8d633..0650d2a 100644
|
15
|
+
--- a/parser.c
|
16
|
+
+++ b/parser.c
|
17
|
+
@@ -6905,7 +6905,7 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) {
|
18
|
+
NULL, NULL);
|
19
|
+
}
|
20
|
+
if ((ctxt-> instate != XML_PARSER_EOF) &&
|
21
|
+
- ((ctxt->input->cur + 3) < ctxt->input->end))
|
22
|
+
+ ((ctxt->input->cur + 3) <= ctxt->input->end))
|
23
|
+
SKIP(3);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
--
|
27
|
+
2.5.0
|
28
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
From 8f905eeb2aa553ee50194ed38db7186653ec6e1c Mon Sep 17 00:00:00 2001
|
2
|
+
From: Daniel Veillard <veillard@redhat.com>
|
3
|
+
Date: Tue, 3 Nov 2015 15:31:25 +0800
|
4
|
+
Subject: [PATCH 8/8] CVE-2015-8035 Fix XZ compression support loop
|
5
|
+
|
6
|
+
For https://bugzilla.gnome.org/show_bug.cgi?id=757466
|
7
|
+
DoS when parsing specially crafted XML document if XZ support
|
8
|
+
is compiled in (which wasn't the case for 2.9.2 and master since
|
9
|
+
Nov 2013, fixed in next commit !)
|
10
|
+
---
|
11
|
+
xzlib.c | 4 ++++
|
12
|
+
1 file changed, 4 insertions(+)
|
13
|
+
|
14
|
+
diff --git a/xzlib.c b/xzlib.c
|
15
|
+
index 0dcb9f4..1fab546 100644
|
16
|
+
--- a/xzlib.c
|
17
|
+
+++ b/xzlib.c
|
18
|
+
@@ -581,6 +581,10 @@ xz_decomp(xz_statep state)
|
19
|
+
xz_error(state, LZMA_DATA_ERROR, "compressed data error");
|
20
|
+
return -1;
|
21
|
+
}
|
22
|
+
+ if (ret == LZMA_PROG_ERROR) {
|
23
|
+
+ xz_error(state, LZMA_PROG_ERROR, "compression error");
|
24
|
+
+ return -1;
|
25
|
+
+ }
|
26
|
+
} while (strm->avail_out && ret != LZMA_STREAM_END);
|
27
|
+
|
28
|
+
/* update available output and crc check value */
|
29
|
+
--
|
30
|
+
2.5.0
|
31
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
From 5865b9545891a38608374ff6458663e483a0dfb5 Mon Sep 17 00:00:00 2001
|
2
|
+
From: Daniel Veillard <veillard@redhat.com>
|
3
|
+
Date: Thu, 29 Oct 2015 19:33:23 +0800
|
4
|
+
Subject: [PATCH] Fix for type confusion in preprocessing attributes
|
5
|
+
|
6
|
+
CVE-2015-7995 http://www.openwall.com/lists/oss-security/2015/10/27/10
|
7
|
+
We need to check that the parent node is an element before dereferencing
|
8
|
+
its namespace
|
9
|
+
---
|
10
|
+
libxslt/preproc.c | 3 ++-
|
11
|
+
1 file changed, 2 insertions(+), 1 deletion(-)
|
12
|
+
|
13
|
+
diff --git a/libxslt/preproc.c b/libxslt/preproc.c
|
14
|
+
index 4ef3f63..dac6acb 100644
|
15
|
+
--- a/libxslt/preproc.c
|
16
|
+
+++ b/libxslt/preproc.c
|
17
|
+
@@ -2245,7 +2245,8 @@ xsltStylePreCompute(xsltStylesheetPtr style, xmlNodePtr inst) {
|
18
|
+
} else if (IS_XSLT_NAME(inst, "attribute")) {
|
19
|
+
xmlNodePtr parent = inst->parent;
|
20
|
+
|
21
|
+
- if ((parent == NULL) || (parent->ns == NULL) ||
|
22
|
+
+ if ((parent == NULL) ||
|
23
|
+
+ (parent->type != XML_ELEMENT_NODE) || (parent->ns == NULL) ||
|
24
|
+
((parent->ns != inst->ns) &&
|
25
|
+
(!xmlStrEqual(parent->ns->href, inst->ns->href))) ||
|
26
|
+
(!xmlStrEqual(parent->name, BAD_CAST "attribute-set"))) {
|
27
|
+
--
|
28
|
+
2.5.0
|
29
|
+
|
data/test_all
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nokogiri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.6.
|
4
|
+
version: 1.6.6.3
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Aaron Patterson
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2015-
|
15
|
+
date: 2015-11-16 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rdoc
|
@@ -160,12 +160,12 @@ dependencies:
|
|
160
160
|
requirements:
|
161
161
|
- - ~>
|
162
162
|
- !ruby/object:Gem::Version
|
163
|
-
version: '3.
|
163
|
+
version: '3.14'
|
164
164
|
requirement: !ruby/object:Gem::Requirement
|
165
165
|
requirements:
|
166
166
|
- - ~>
|
167
167
|
- !ruby/object:Gem::Version
|
168
|
-
version: '3.
|
168
|
+
version: '3.14'
|
169
169
|
prerelease: false
|
170
170
|
type: :development
|
171
171
|
description: |-
|
@@ -431,6 +431,7 @@ files:
|
|
431
431
|
- lib/nokogiri/html/sax/parser.rb
|
432
432
|
- lib/nokogiri/html/sax/parser_context.rb
|
433
433
|
- lib/nokogiri/html/sax/push_parser.rb
|
434
|
+
- lib/nokogiri/nokogiri.jar
|
434
435
|
- lib/nokogiri/syntax_error.rb
|
435
436
|
- lib/nokogiri/version.rb
|
436
437
|
- lib/nokogiri/xml.rb
|
@@ -475,6 +476,12 @@ files:
|
|
475
476
|
- lib/xsd/xmlparser/nokogiri.rb
|
476
477
|
- ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch
|
477
478
|
- ports/patches/libxml2/0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch
|
479
|
+
- ports/patches/libxml2/0003-Stop-parsing-on-entities-boundaries-errors.patch
|
480
|
+
- ports/patches/libxml2/0004-Cleanup-conditional-section-error-handling.patch
|
481
|
+
- ports/patches/libxml2/0005-CVE-2015-1819-Enforce-the-reader-to-run-in-constant-.patch
|
482
|
+
- ports/patches/libxml2/0006-Another-variation-of-overflow-in-Conditional-section.patch
|
483
|
+
- ports/patches/libxml2/0007-Fix-an-error-in-previous-Conditional-section-patch.patch
|
484
|
+
- ports/patches/libxml2/0008-CVE-2015-8035-Fix-XZ-compression-support-loop.patch
|
478
485
|
- ports/patches/libxslt/0001-Adding-doc-update-related-to-1.1.28.patch
|
479
486
|
- ports/patches/libxslt/0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch
|
480
487
|
- ports/patches/libxslt/0003-Initialize-pseudo-random-number-generator-with-curre.patch
|
@@ -487,6 +494,7 @@ files:
|
|
487
494
|
- ports/patches/libxslt/0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch
|
488
495
|
- ports/patches/libxslt/0014-Fix-for-bug-436589.patch
|
489
496
|
- ports/patches/libxslt/0015-Fix-mkdir-for-mingw.patch
|
497
|
+
- ports/patches/libxslt/0016-Fix-for-type-confusion-in-preprocessing-attributes.patch
|
490
498
|
- ports/patches/sort-patches-by-date
|
491
499
|
- suppressions/README.txt
|
492
500
|
- suppressions/nokogiri_ree-1.8.7.358.supp
|
@@ -601,7 +609,6 @@ files:
|
|
601
609
|
- test/xslt/test_custom_functions.rb
|
602
610
|
- test/xslt/test_exception_handling.rb
|
603
611
|
- test_all
|
604
|
-
- lib/nokogiri/nokogiri.jar
|
605
612
|
homepage: http://nokogiri.org
|
606
613
|
licenses:
|
607
614
|
- MIT
|
@@ -624,78 +631,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
624
631
|
version: '0'
|
625
632
|
requirements: []
|
626
633
|
rubyforge_project:
|
627
|
-
rubygems_version: 2.
|
634
|
+
rubygems_version: 2.4.5
|
628
635
|
signing_key:
|
629
636
|
specification_version: 4
|
630
637
|
summary: Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser
|
631
|
-
test_files:
|
632
|
-
- test/test_reader.rb
|
633
|
-
- test/test_memory_leak.rb
|
634
|
-
- test/test_soap4r_sax.rb
|
635
|
-
- test/test_nokogiri.rb
|
636
|
-
- test/test_xslt_transforms.rb
|
637
|
-
- test/test_convert_xpath.rb
|
638
|
-
- test/test_encoding_handler.rb
|
639
|
-
- test/test_css_cache.rb
|
640
|
-
- test/xml/test_processing_instruction.rb
|
641
|
-
- test/xml/test_c14n.rb
|
642
|
-
- test/xml/test_builder.rb
|
643
|
-
- test/xml/test_document_fragment.rb
|
644
|
-
- test/xml/test_comment.rb
|
645
|
-
- test/xml/test_unparented_node.rb
|
646
|
-
- test/xml/test_node_reparenting.rb
|
647
|
-
- test/xml/test_syntax_error.rb
|
648
|
-
- test/xml/test_cdata.rb
|
649
|
-
- test/xml/test_entity_reference.rb
|
650
|
-
- test/xml/test_schema.rb
|
651
|
-
- test/xml/test_xinclude.rb
|
652
|
-
- test/xml/test_document.rb
|
653
|
-
- test/xml/test_node_inheritance.rb
|
654
|
-
- test/xml/test_text.rb
|
655
|
-
- test/xml/test_xpath.rb
|
656
|
-
- test/xml/test_element_decl.rb
|
657
|
-
- test/xml/test_node_attributes.rb
|
658
|
-
- test/xml/test_attribute_decl.rb
|
659
|
-
- test/xml/test_node.rb
|
660
|
-
- test/xml/test_reader_encoding.rb
|
661
|
-
- test/xml/test_parse_options.rb
|
662
|
-
- test/xml/test_node_set.rb
|
663
|
-
- test/xml/test_dtd.rb
|
664
|
-
- test/xml/test_document_encoding.rb
|
665
|
-
- test/xml/test_entity_decl.rb
|
666
|
-
- test/xml/test_node_encoding.rb
|
667
|
-
- test/xml/test_attr.rb
|
668
|
-
- test/xml/test_relax_ng.rb
|
669
|
-
- test/xml/test_namespace.rb
|
670
|
-
- test/xml/test_element_content.rb
|
671
|
-
- test/xml/test_dtd_encoding.rb
|
672
|
-
- test/xml/sax/test_parser_context.rb
|
673
|
-
- test/xml/sax/test_parser.rb
|
674
|
-
- test/xml/sax/test_push_parser.rb
|
675
|
-
- test/xml/node/test_subclass.rb
|
676
|
-
- test/xml/node/test_save_options.rb
|
677
|
-
- test/css/test_tokenizer.rb
|
678
|
-
- test/css/test_xpath_visitor.rb
|
679
|
-
- test/css/test_nthiness.rb
|
680
|
-
- test/css/test_parser.rb
|
681
|
-
- test/html/test_builder.rb
|
682
|
-
- test/html/test_document_fragment.rb
|
683
|
-
- test/html/test_element_description.rb
|
684
|
-
- test/html/test_document.rb
|
685
|
-
- test/html/test_named_characters.rb
|
686
|
-
- test/html/test_node.rb
|
687
|
-
- test/html/test_document_encoding.rb
|
688
|
-
- test/html/test_node_encoding.rb
|
689
|
-
- test/html/sax/test_parser_context.rb
|
690
|
-
- test/html/sax/test_parser.rb
|
691
|
-
- test/html/sax/test_push_parser.rb
|
692
|
-
- test/xslt/test_custom_functions.rb
|
693
|
-
- test/xslt/test_exception_handling.rb
|
694
|
-
- test/decorators/test_slop.rb
|
695
|
-
- test/namespaces/test_namespaces_in_cloned_doc.rb
|
696
|
-
- test/namespaces/test_additional_namespaces_in_builder_doc.rb
|
697
|
-
- test/namespaces/test_namespaces_in_parsed_doc.rb
|
698
|
-
- test/namespaces/test_namespaces_aliased_default.rb
|
699
|
-
- test/namespaces/test_namespaces_preservation.rb
|
700
|
-
- test/namespaces/test_namespaces_in_created_doc.rb
|
701
|
-
- test/namespaces/test_namespaces_in_builder_doc.rb
|
638
|
+
test_files: []
|