nokogiri 1.10.9 → 1.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nokogiri might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +38 -0
- data/LICENSE-DEPENDENCIES.md +1632 -1022
- data/LICENSE.md +1 -1
- data/README.md +190 -95
- data/bin/nokogiri +63 -50
- data/dependencies.yml +34 -66
- data/ext/nokogiri/depend +38 -358
- data/ext/nokogiri/extconf.rb +909 -422
- data/ext/nokogiri/gumbo.c +610 -0
- data/ext/nokogiri/html4_document.c +171 -0
- data/ext/nokogiri/html4_element_description.c +299 -0
- data/ext/nokogiri/html4_entity_lookup.c +37 -0
- data/ext/nokogiri/html4_sax_parser.c +40 -0
- data/ext/nokogiri/html4_sax_parser_context.c +98 -0
- data/ext/nokogiri/html4_sax_push_parser.c +96 -0
- data/ext/nokogiri/libxml2_polyfill.c +114 -0
- data/ext/nokogiri/nokogiri.c +258 -105
- data/ext/nokogiri/nokogiri.h +207 -90
- data/ext/nokogiri/test_global_handlers.c +40 -0
- data/ext/nokogiri/xml_attr.c +18 -18
- data/ext/nokogiri/xml_attribute_decl.c +22 -22
- data/ext/nokogiri/xml_cdata.c +33 -33
- data/ext/nokogiri/xml_comment.c +19 -31
- data/ext/nokogiri/xml_document.c +499 -323
- data/ext/nokogiri/xml_document_fragment.c +17 -36
- data/ext/nokogiri/xml_dtd.c +65 -59
- data/ext/nokogiri/xml_element_content.c +63 -55
- data/ext/nokogiri/xml_element_decl.c +31 -31
- data/ext/nokogiri/xml_encoding_handler.c +54 -21
- data/ext/nokogiri/xml_entity_decl.c +37 -35
- data/ext/nokogiri/xml_entity_reference.c +17 -19
- data/ext/nokogiri/xml_namespace.c +131 -61
- data/ext/nokogiri/xml_node.c +1429 -723
- data/ext/nokogiri/xml_node_set.c +257 -225
- data/ext/nokogiri/xml_processing_instruction.c +18 -20
- data/ext/nokogiri/xml_reader.c +340 -231
- data/ext/nokogiri/xml_relax_ng.c +87 -99
- data/ext/nokogiri/xml_sax_parser.c +269 -176
- data/ext/nokogiri/xml_sax_parser_context.c +286 -152
- data/ext/nokogiri/xml_sax_push_parser.c +111 -64
- data/ext/nokogiri/xml_schema.c +132 -140
- data/ext/nokogiri/xml_syntax_error.c +52 -23
- data/ext/nokogiri/xml_text.c +37 -30
- data/ext/nokogiri/xml_xpath_context.c +373 -185
- data/ext/nokogiri/xslt_stylesheet.c +342 -191
- data/gumbo-parser/CHANGES.md +63 -0
- data/gumbo-parser/Makefile +129 -0
- data/gumbo-parser/THANKS +27 -0
- data/gumbo-parser/src/Makefile +34 -0
- data/gumbo-parser/src/README.md +41 -0
- data/gumbo-parser/src/ascii.c +75 -0
- data/gumbo-parser/src/ascii.h +115 -0
- data/gumbo-parser/src/attribute.c +42 -0
- data/gumbo-parser/src/attribute.h +17 -0
- data/gumbo-parser/src/char_ref.c +22225 -0
- data/gumbo-parser/src/char_ref.h +29 -0
- data/gumbo-parser/src/char_ref.rl +2154 -0
- data/gumbo-parser/src/error.c +658 -0
- data/gumbo-parser/src/error.h +152 -0
- data/gumbo-parser/src/foreign_attrs.c +103 -0
- data/gumbo-parser/src/foreign_attrs.gperf +27 -0
- data/gumbo-parser/src/insertion_mode.h +33 -0
- data/gumbo-parser/src/macros.h +91 -0
- data/gumbo-parser/src/nokogiri_gumbo.h +953 -0
- data/gumbo-parser/src/parser.c +4932 -0
- data/gumbo-parser/src/parser.h +41 -0
- data/gumbo-parser/src/replacement.h +33 -0
- data/gumbo-parser/src/string_buffer.c +103 -0
- data/gumbo-parser/src/string_buffer.h +68 -0
- data/gumbo-parser/src/string_piece.c +48 -0
- data/gumbo-parser/src/svg_attrs.c +174 -0
- data/gumbo-parser/src/svg_attrs.gperf +77 -0
- data/gumbo-parser/src/svg_tags.c +137 -0
- data/gumbo-parser/src/svg_tags.gperf +55 -0
- data/gumbo-parser/src/tag.c +223 -0
- data/gumbo-parser/src/tag_lookup.c +382 -0
- data/gumbo-parser/src/tag_lookup.gperf +170 -0
- data/gumbo-parser/src/tag_lookup.h +13 -0
- data/gumbo-parser/src/token_buffer.c +79 -0
- data/gumbo-parser/src/token_buffer.h +71 -0
- data/gumbo-parser/src/token_type.h +17 -0
- data/gumbo-parser/src/tokenizer.c +3464 -0
- data/gumbo-parser/src/tokenizer.h +112 -0
- data/gumbo-parser/src/tokenizer_states.h +339 -0
- data/gumbo-parser/src/utf8.c +245 -0
- data/gumbo-parser/src/utf8.h +164 -0
- data/gumbo-parser/src/util.c +66 -0
- data/gumbo-parser/src/util.h +34 -0
- data/gumbo-parser/src/vector.c +111 -0
- data/gumbo-parser/src/vector.h +45 -0
- data/lib/nokogiri/class_resolver.rb +67 -0
- data/lib/nokogiri/css/node.rb +14 -8
- data/lib/nokogiri/css/parser.rb +399 -377
- data/lib/nokogiri/css/parser.y +250 -245
- data/lib/nokogiri/css/parser_extras.rb +16 -71
- data/lib/nokogiri/css/selector_cache.rb +38 -0
- data/lib/nokogiri/css/syntax_error.rb +3 -1
- data/lib/nokogiri/css/tokenizer.rb +7 -5
- data/lib/nokogiri/css/tokenizer.rex +11 -9
- data/lib/nokogiri/css/xpath_visitor.rb +242 -96
- data/lib/nokogiri/css.rb +122 -17
- data/lib/nokogiri/decorators/slop.rb +11 -11
- data/lib/nokogiri/encoding_handler.rb +57 -0
- data/lib/nokogiri/extension.rb +32 -0
- data/lib/nokogiri/gumbo.rb +15 -0
- data/lib/nokogiri/html.rb +38 -27
- data/lib/nokogiri/{html → html4}/builder.rb +4 -2
- data/lib/nokogiri/html4/document.rb +235 -0
- data/lib/nokogiri/html4/document_fragment.rb +166 -0
- data/lib/nokogiri/{html → html4}/element_description.rb +3 -1
- data/lib/nokogiri/html4/element_description_defaults.rb +2040 -0
- data/lib/nokogiri/html4/encoding_reader.rb +121 -0
- data/lib/nokogiri/{html → html4}/entity_lookup.rb +4 -2
- data/lib/nokogiri/html4/sax/parser.rb +48 -0
- data/lib/nokogiri/html4/sax/parser_context.rb +15 -0
- data/lib/nokogiri/{html → html4}/sax/push_parser.rb +12 -11
- data/lib/nokogiri/html4.rb +42 -0
- data/lib/nokogiri/html5/builder.rb +40 -0
- data/lib/nokogiri/html5/document.rb +199 -0
- data/lib/nokogiri/html5/document_fragment.rb +200 -0
- data/lib/nokogiri/html5/node.rb +103 -0
- data/lib/nokogiri/html5.rb +368 -0
- data/lib/nokogiri/jruby/dependencies.rb +3 -0
- data/lib/nokogiri/jruby/nokogiri_jars.rb +43 -0
- data/lib/nokogiri/syntax_error.rb +2 -0
- data/lib/nokogiri/version/constant.rb +6 -0
- data/lib/nokogiri/version/info.rb +224 -0
- data/lib/nokogiri/version.rb +3 -108
- data/lib/nokogiri/xml/attr.rb +55 -3
- data/lib/nokogiri/xml/attribute_decl.rb +6 -2
- data/lib/nokogiri/xml/builder.rb +83 -35
- data/lib/nokogiri/xml/cdata.rb +3 -1
- data/lib/nokogiri/xml/character_data.rb +2 -0
- data/lib/nokogiri/xml/document.rb +359 -130
- data/lib/nokogiri/xml/document_fragment.rb +170 -54
- data/lib/nokogiri/xml/dtd.rb +4 -2
- data/lib/nokogiri/xml/element_content.rb +12 -2
- data/lib/nokogiri/xml/element_decl.rb +6 -2
- data/lib/nokogiri/xml/entity_decl.rb +7 -3
- data/lib/nokogiri/xml/entity_reference.rb +2 -0
- data/lib/nokogiri/xml/namespace.rb +44 -0
- data/lib/nokogiri/xml/node/save_options.rb +23 -8
- data/lib/nokogiri/xml/node.rb +1168 -420
- data/lib/nokogiri/xml/node_set.rb +145 -67
- data/lib/nokogiri/xml/notation.rb +13 -0
- data/lib/nokogiri/xml/parse_options.rb +145 -52
- data/lib/nokogiri/xml/pp/character_data.rb +9 -6
- data/lib/nokogiri/xml/pp/node.rb +47 -30
- data/lib/nokogiri/xml/pp.rb +4 -2
- data/lib/nokogiri/xml/processing_instruction.rb +4 -1
- data/lib/nokogiri/xml/reader.rb +68 -41
- data/lib/nokogiri/xml/relax_ng.rb +60 -17
- data/lib/nokogiri/xml/sax/document.rb +198 -111
- data/lib/nokogiri/xml/sax/parser.rb +144 -67
- data/lib/nokogiri/xml/sax/parser_context.rb +119 -6
- data/lib/nokogiri/xml/sax/push_parser.rb +9 -5
- data/lib/nokogiri/xml/sax.rb +54 -4
- data/lib/nokogiri/xml/schema.rb +116 -39
- data/lib/nokogiri/xml/searchable.rb +139 -95
- data/lib/nokogiri/xml/syntax_error.rb +29 -5
- data/lib/nokogiri/xml/text.rb +2 -0
- data/lib/nokogiri/xml/xpath/syntax_error.rb +4 -2
- data/lib/nokogiri/xml/xpath.rb +15 -4
- data/lib/nokogiri/xml/xpath_context.rb +15 -4
- data/lib/nokogiri/xml.rb +45 -55
- data/lib/nokogiri/xslt/stylesheet.rb +32 -8
- data/lib/nokogiri/xslt.rb +103 -30
- data/lib/nokogiri.rb +59 -75
- data/lib/xsd/xmlparser/nokogiri.rb +32 -29
- data/patches/libxml2/0009-allow-wildcard-namespaces.patch +77 -0
- data/patches/libxml2/0010-update-config.guess-and-config.sub-for-libxml2.patch +224 -0
- data/patches/libxml2/0011-rip-out-libxml2-s-libc_single_threaded-support.patch +30 -0
- data/patches/libxml2/0019-xpath-Use-separate-static-hash-table-for-standard-fu.patch +244 -0
- data/patches/libxslt/0001-update-config.guess-and-config.sub-for-libxslt.patch +224 -0
- data/ports/archives/libxml2-2.13.6.tar.xz +0 -0
- data/ports/archives/libxslt-1.1.42.tar.xz +0 -0
- metadata +123 -295
- data/ext/nokogiri/html_document.c +0 -170
- data/ext/nokogiri/html_document.h +0 -10
- data/ext/nokogiri/html_element_description.c +0 -279
- data/ext/nokogiri/html_element_description.h +0 -10
- data/ext/nokogiri/html_entity_lookup.c +0 -32
- data/ext/nokogiri/html_entity_lookup.h +0 -8
- data/ext/nokogiri/html_sax_parser_context.c +0 -116
- data/ext/nokogiri/html_sax_parser_context.h +0 -11
- data/ext/nokogiri/html_sax_push_parser.c +0 -87
- data/ext/nokogiri/html_sax_push_parser.h +0 -9
- data/ext/nokogiri/xml_attr.h +0 -9
- data/ext/nokogiri/xml_attribute_decl.h +0 -9
- data/ext/nokogiri/xml_cdata.h +0 -9
- data/ext/nokogiri/xml_comment.h +0 -9
- data/ext/nokogiri/xml_document.h +0 -23
- data/ext/nokogiri/xml_document_fragment.h +0 -10
- data/ext/nokogiri/xml_dtd.h +0 -10
- data/ext/nokogiri/xml_element_content.h +0 -10
- data/ext/nokogiri/xml_element_decl.h +0 -9
- data/ext/nokogiri/xml_encoding_handler.h +0 -8
- data/ext/nokogiri/xml_entity_decl.h +0 -10
- data/ext/nokogiri/xml_entity_reference.h +0 -9
- data/ext/nokogiri/xml_io.c +0 -61
- data/ext/nokogiri/xml_io.h +0 -11
- data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
- data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
- data/ext/nokogiri/xml_namespace.h +0 -14
- data/ext/nokogiri/xml_node.h +0 -13
- data/ext/nokogiri/xml_node_set.h +0 -12
- data/ext/nokogiri/xml_processing_instruction.h +0 -9
- data/ext/nokogiri/xml_reader.h +0 -10
- data/ext/nokogiri/xml_relax_ng.h +0 -9
- data/ext/nokogiri/xml_sax_parser.h +0 -39
- data/ext/nokogiri/xml_sax_parser_context.h +0 -10
- data/ext/nokogiri/xml_sax_push_parser.h +0 -9
- data/ext/nokogiri/xml_schema.h +0 -9
- data/ext/nokogiri/xml_syntax_error.h +0 -13
- data/ext/nokogiri/xml_text.h +0 -9
- data/ext/nokogiri/xml_xpath_context.h +0 -10
- data/ext/nokogiri/xslt_stylesheet.h +0 -14
- data/lib/nokogiri/html/document.rb +0 -335
- data/lib/nokogiri/html/document_fragment.rb +0 -49
- data/lib/nokogiri/html/element_description_defaults.rb +0 -671
- data/lib/nokogiri/html/sax/parser.rb +0 -62
- data/lib/nokogiri/html/sax/parser_context.rb +0 -16
- data/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch +0 -78
- data/patches/libxml2/0004-libxml2.la-is-in-top_builddir.patch +0 -25
- data/patches/libxml2/0005-Fix-infinite-loop-in-xmlStringLenDecodeEntities.patch +0 -32
- data/ports/archives/libxml2-2.9.10.tar.gz +0 -0
- data/ports/archives/libxslt-1.1.34.tar.gz +0 -0
- /data/patches/libxml2/{0002-Remove-script-macro-support.patch → 0001-Remove-script-macro-support.patch} +0 -0
- /data/patches/libxml2/{0003-Update-entities-to-remove-handling-of-ssi.patch → 0002-Update-entities-to-remove-handling-of-ssi.patch} +0 -0
@@ -1,62 +0,0 @@
|
|
1
|
-
module Nokogiri
|
2
|
-
module HTML
|
3
|
-
###
|
4
|
-
# Nokogiri lets you write a SAX parser to process HTML but get HTML
|
5
|
-
# correction features.
|
6
|
-
#
|
7
|
-
# See Nokogiri::HTML::SAX::Parser for a basic example of using a
|
8
|
-
# SAX parser with HTML.
|
9
|
-
#
|
10
|
-
# For more information on SAX parsers, see Nokogiri::XML::SAX
|
11
|
-
module SAX
|
12
|
-
###
|
13
|
-
# This class lets you perform SAX style parsing on HTML with HTML
|
14
|
-
# error correction.
|
15
|
-
#
|
16
|
-
# Here is a basic usage example:
|
17
|
-
#
|
18
|
-
# class MyDoc < Nokogiri::XML::SAX::Document
|
19
|
-
# def start_element name, attributes = []
|
20
|
-
# puts "found a #{name}"
|
21
|
-
# end
|
22
|
-
# end
|
23
|
-
#
|
24
|
-
# parser = Nokogiri::HTML::SAX::Parser.new(MyDoc.new)
|
25
|
-
# parser.parse(File.read(ARGV[0], mode: 'rb'))
|
26
|
-
#
|
27
|
-
# For more information on SAX parsers, see Nokogiri::XML::SAX
|
28
|
-
class Parser < Nokogiri::XML::SAX::Parser
|
29
|
-
###
|
30
|
-
# Parse html stored in +data+ using +encoding+
|
31
|
-
def parse_memory data, encoding = 'UTF-8'
|
32
|
-
raise ArgumentError unless data
|
33
|
-
return unless data.length > 0
|
34
|
-
ctx = ParserContext.memory(data, encoding)
|
35
|
-
yield ctx if block_given?
|
36
|
-
ctx.parse_with self
|
37
|
-
end
|
38
|
-
|
39
|
-
###
|
40
|
-
# Parse given +io+
|
41
|
-
def parse_io io, encoding = 'UTF-8'
|
42
|
-
check_encoding(encoding)
|
43
|
-
@encoding = encoding
|
44
|
-
ctx = ParserContext.io(io, ENCODINGS[encoding])
|
45
|
-
yield ctx if block_given?
|
46
|
-
ctx.parse_with self
|
47
|
-
end
|
48
|
-
|
49
|
-
###
|
50
|
-
# Parse a file with +filename+
|
51
|
-
def parse_file filename, encoding = 'UTF-8'
|
52
|
-
raise ArgumentError unless filename
|
53
|
-
raise Errno::ENOENT unless File.exist?(filename)
|
54
|
-
raise Errno::EISDIR if File.directory?(filename)
|
55
|
-
ctx = ParserContext.file(filename, encoding)
|
56
|
-
yield ctx if block_given?
|
57
|
-
ctx.parse_with self
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module Nokogiri
|
2
|
-
module HTML
|
3
|
-
module SAX
|
4
|
-
###
|
5
|
-
# Context for HTML SAX parsers. This class is usually not instantiated
|
6
|
-
# by the user. Instead, you should be looking at
|
7
|
-
# Nokogiri::HTML::SAX::Parser
|
8
|
-
class ParserContext < Nokogiri::XML::SAX::ParserContext
|
9
|
-
def self.new thing, encoding = 'UTF-8'
|
10
|
-
[:read, :close].all? { |x| thing.respond_to?(x) } ? super :
|
11
|
-
memory(thing, encoding)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,78 +0,0 @@
|
|
1
|
-
From c5538465c08a8ea248a370bf55bc39cd3385e4af Mon Sep 17 00:00:00 2001
|
2
|
-
From: Mike Dalessio <mike.dalessio@gmail.com>
|
3
|
-
Date: Thu, 29 Mar 2018 14:09:00 -0400
|
4
|
-
Subject: [PATCH] Revert "Do not URI escape in server side includes"
|
5
|
-
|
6
|
-
This reverts commit 960f0e275616cadc29671a218d7fb9b69eb35588.
|
7
|
-
---
|
8
|
-
HTMLtree.c | 49 +++++++++++--------------------------------------
|
9
|
-
1 file changed, 11 insertions(+), 38 deletions(-)
|
10
|
-
|
11
|
-
diff --git a/HTMLtree.c b/HTMLtree.c
|
12
|
-
index 2fd0c9c..67160c5 100644
|
13
|
-
--- a/HTMLtree.c
|
14
|
-
+++ b/HTMLtree.c
|
15
|
-
@@ -717,49 +717,22 @@ htmlAttrDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur,
|
16
|
-
(!xmlStrcasecmp(cur->name, BAD_CAST "src")) ||
|
17
|
-
((!xmlStrcasecmp(cur->name, BAD_CAST "name")) &&
|
18
|
-
(!xmlStrcasecmp(cur->parent->name, BAD_CAST "a"))))) {
|
19
|
-
+ xmlChar *escaped;
|
20
|
-
xmlChar *tmp = value;
|
21
|
-
- /* xmlURIEscapeStr() escapes '"' so it can be safely used. */
|
22
|
-
- xmlBufCCat(buf->buffer, "\"");
|
23
|
-
|
24
|
-
while (IS_BLANK_CH(*tmp)) tmp++;
|
25
|
-
|
26
|
-
- /* URI Escape everything, except server side includes. */
|
27
|
-
- for ( ; ; ) {
|
28
|
-
- xmlChar *escaped;
|
29
|
-
- xmlChar endChar;
|
30
|
-
- xmlChar *end = NULL;
|
31
|
-
- xmlChar *start = (xmlChar *)xmlStrstr(tmp, BAD_CAST "<!--");
|
32
|
-
- if (start != NULL) {
|
33
|
-
- end = (xmlChar *)xmlStrstr(tmp, BAD_CAST "-->");
|
34
|
-
- if (end != NULL) {
|
35
|
-
- *start = '\0';
|
36
|
-
- }
|
37
|
-
- }
|
38
|
-
-
|
39
|
-
- /* Escape the whole string, or until start (set to '\0'). */
|
40
|
-
- escaped = xmlURIEscapeStr(tmp, BAD_CAST"@/:=?;#%&,+");
|
41
|
-
- if (escaped != NULL) {
|
42
|
-
- xmlBufCat(buf->buffer, escaped);
|
43
|
-
- xmlFree(escaped);
|
44
|
-
- } else {
|
45
|
-
- xmlBufCat(buf->buffer, tmp);
|
46
|
-
- }
|
47
|
-
-
|
48
|
-
- if (end == NULL) { /* Everything has been written. */
|
49
|
-
- break;
|
50
|
-
- }
|
51
|
-
-
|
52
|
-
- /* Do not escape anything within server side includes. */
|
53
|
-
- *start = '<'; /* Restore the first character of "<!--". */
|
54
|
-
- end += 3; /* strlen("-->") */
|
55
|
-
- endChar = *end;
|
56
|
-
- *end = '\0';
|
57
|
-
- xmlBufCat(buf->buffer, start);
|
58
|
-
- *end = endChar;
|
59
|
-
- tmp = end;
|
60
|
-
+ /*
|
61
|
-
+ * the < and > have already been escaped at the entity level
|
62
|
-
+ * And doing so here breaks server side includes
|
63
|
-
+ */
|
64
|
-
+ escaped = xmlURIEscapeStr(tmp, BAD_CAST"@/:=?;#%&,+<>");
|
65
|
-
+ if (escaped != NULL) {
|
66
|
-
+ xmlBufWriteQuotedString(buf->buffer, escaped);
|
67
|
-
+ xmlFree(escaped);
|
68
|
-
+ } else {
|
69
|
-
+ xmlBufWriteQuotedString(buf->buffer, value);
|
70
|
-
}
|
71
|
-
-
|
72
|
-
- xmlBufCCat(buf->buffer, "\"");
|
73
|
-
} else {
|
74
|
-
xmlBufWriteQuotedString(buf->buffer, value);
|
75
|
-
}
|
76
|
-
--
|
77
|
-
2.9.5
|
78
|
-
|
@@ -1,25 +0,0 @@
|
|
1
|
-
From 0b6ae484761fa01242fe8b67b54e3eb2d282d83d Mon Sep 17 00:00:00 2001
|
2
|
-
From: Mike Dalessio <mike.dalessio@gmail.com>
|
3
|
-
Date: Wed, 4 Dec 2019 08:43:51 -0500
|
4
|
-
Subject: [PATCH] fix libxml2.la's path
|
5
|
-
|
6
|
-
---
|
7
|
-
Makefile.in | 2 +-
|
8
|
-
1 file changed, 1 insertion(+), 1 deletion(-)
|
9
|
-
|
10
|
-
diff --git a/Makefile.in b/Makefile.in
|
11
|
-
index cf96d41..1372d8b 100644
|
12
|
-
--- a/Makefile.in
|
13
|
-
+++ b/Makefile.in
|
14
|
-
@@ -1057,7 +1057,7 @@ clean-noinstLTLIBRARIES:
|
15
|
-
rm -f $${locs}; \
|
16
|
-
}
|
17
|
-
|
18
|
-
-libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES) $(EXTRA_libxml2_la_DEPENDENCIES)
|
19
|
-
+$(top_builddir)/libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES) $(EXTRA_libxml2_la_DEPENDENCIES)
|
20
|
-
$(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) $(libxml2_la_LIBADD) $(LIBS)
|
21
|
-
|
22
|
-
testdso.la: $(testdso_la_OBJECTS) $(testdso_la_DEPENDENCIES) $(EXTRA_testdso_la_DEPENDENCIES)
|
23
|
-
--
|
24
|
-
2.17.1
|
25
|
-
|
@@ -1,32 +0,0 @@
|
|
1
|
-
From 0e1a49c8907645d2e155f0d89d4d9895ac5112b5 Mon Sep 17 00:00:00 2001
|
2
|
-
From: Zhipeng Xie <xiezhipeng1@huawei.com>
|
3
|
-
Date: Thu, 12 Dec 2019 17:30:55 +0800
|
4
|
-
Subject: [PATCH] Fix infinite loop in xmlStringLenDecodeEntities
|
5
|
-
|
6
|
-
When ctxt->instate == XML_PARSER_EOF,xmlParseStringEntityRef
|
7
|
-
return NULL which cause a infinite loop in xmlStringLenDecodeEntities
|
8
|
-
|
9
|
-
Found with libFuzzer.
|
10
|
-
|
11
|
-
Signed-off-by: Zhipeng Xie <xiezhipeng1@huawei.com>
|
12
|
-
---
|
13
|
-
parser.c | 3 ++-
|
14
|
-
1 file changed, 2 insertions(+), 1 deletion(-)
|
15
|
-
|
16
|
-
diff --git a/parser.c b/parser.c
|
17
|
-
index d1c3196..a34bb6c 100644
|
18
|
-
--- a/parser.c
|
19
|
-
+++ b/parser.c
|
20
|
-
@@ -2646,7 +2646,8 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len,
|
21
|
-
else
|
22
|
-
c = 0;
|
23
|
-
while ((c != 0) && (c != end) && /* non input consuming loop */
|
24
|
-
- (c != end2) && (c != end3)) {
|
25
|
-
+ (c != end2) && (c != end3) &&
|
26
|
-
+ (ctxt->instate != XML_PARSER_EOF)) {
|
27
|
-
|
28
|
-
if (c == 0) break;
|
29
|
-
if ((c == '&') && (str[1] == '#')) {
|
30
|
-
--
|
31
|
-
2.17.1
|
32
|
-
|
Binary file
|
Binary file
|
File without changes
|