nokogiri 1.15.2 → 1.15.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 28cf4d0b9baf07480c793fb96278ff794143b4fe174bf3f30cbf01db379f7666
4
- data.tar.gz: cf64722cac06b54e210eeefc458db1a5891226247f67c8285a70333bf8d509b3
3
+ metadata.gz: 244e673a87f9559a0aa597c75f7c8848f96f67db9d6fa8b9b21fecc466c472d2
4
+ data.tar.gz: f046f870e270f8daa484bb16fc8915a7228dfee3d6c61220e78fea753a2250ee
5
5
  SHA512:
6
- metadata.gz: 374b25e5821f2bb9a27f702bc24967d736bd1b14e17529927d5686e0ae12c3b28ed6c602cbe5d96de992030498305bd1add8947aeaac0be2519ef8364e15f5a9
7
- data.tar.gz: a1b99efa7d206e23499e98c87ac5844353d0c7da1f1f0536ccd3dc66535f537c3748d938324c6b63fbd3c59e99a0bf10edc77d3904aa4c497d09e76e304326e1
6
+ metadata.gz: bce186e13d536128d231590d143bd40db88cf1c3008e8d0775b411b1ea7e26eb27ff81af47695b0b073a603bdc111361e56626dbdc7ae43f0f419f06b7128f26
7
+ data.tar.gz: 252a25c25d530d20012094fa6ba73c87823ca40dd73ec42cde8f579ff14a5c8bc8a3e799e37c9e5848bcc2c4d4ae3d94b88f8b0e6d0771136549bbfd5bd4b7c8
data/dependencies.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  libxml2:
2
- version: "2.11.4"
3
- sha256: "737e1d7f8ab3f139729ca13a2494fd17bf30ddb4b7a427cf336252cab57f57f7"
4
- # sha-256 hash provided in https://download.gnome.org/sources/libxml2/2.11/libxml2-2.11.4.sha256sum
2
+ version: "2.11.5"
3
+ sha256: "3727b078c360ec69fa869de14bd6f75d7ee8d36987b071e6928d4720a28df3a6"
4
+ # sha-256 hash provided in https://download.gnome.org/sources/libxml2/2.11/libxml2-2.11.5.sha256sum
5
5
 
6
6
  libxslt:
7
7
  version: "1.1.38"
@@ -12,39 +12,45 @@ VALUE cNokogiriXmlCData;
12
12
  * raise a TypeError exception.
13
13
  */
14
14
  static VALUE
15
- new (int argc, VALUE *argv, VALUE klass)
15
+ rb_xml_cdata_s_new(int argc, VALUE *argv, VALUE klass)
16
16
  {
17
- xmlDocPtr xml_doc;
18
- xmlNodePtr node;
19
- VALUE doc;
20
- VALUE content;
21
- VALUE rest;
17
+ xmlDocPtr c_document;
18
+ xmlNodePtr c_node;
19
+ VALUE rb_document;
20
+ VALUE rb_content;
21
+ VALUE rb_rest;
22
22
  VALUE rb_node;
23
- xmlChar *content_str = NULL;
24
- int content_str_len = 0;
23
+ xmlChar *c_content = NULL;
24
+ int c_content_len = 0;
25
25
 
26
- rb_scan_args(argc, argv, "2*", &doc, &content, &rest);
26
+ rb_scan_args(argc, argv, "2*", &rb_document, &rb_content, &rb_rest);
27
27
 
28
- if (rb_obj_is_kind_of(doc, cNokogiriXmlDocument)) {
29
- xml_doc = noko_xml_document_unwrap(doc);
30
- } else {
28
+ if (!rb_obj_is_kind_of(rb_document, cNokogiriXmlNode)) {
29
+ rb_raise(rb_eTypeError,
30
+ "expected first parameter to be a Nokogiri::XML::Document, received %"PRIsVALUE,
31
+ rb_obj_class(rb_document));
32
+ }
33
+
34
+ if (!rb_obj_is_kind_of(rb_document, cNokogiriXmlDocument)) {
31
35
  xmlNodePtr deprecated_node_type_arg;
32
36
  // TODO: deprecate allowing Node
33
37
  NOKO_WARN_DEPRECATION("Passing a Node as the first parameter to CDATA.new is deprecated. Please pass a Document instead. This will become an error in a future release of Nokogiri.");
34
- Noko_Node_Get_Struct(doc, xmlNode, deprecated_node_type_arg);
35
- xml_doc = deprecated_node_type_arg->doc;
38
+ Noko_Node_Get_Struct(rb_document, xmlNode, deprecated_node_type_arg);
39
+ c_document = deprecated_node_type_arg->doc;
40
+ } else {
41
+ c_document = noko_xml_document_unwrap(rb_document);
36
42
  }
37
43
 
38
- if (!NIL_P(content)) {
39
- content_str = (xmlChar *)StringValuePtr(content);
40
- content_str_len = RSTRING_LENINT(content);
44
+ if (!NIL_P(rb_content)) {
45
+ c_content = (xmlChar *)StringValuePtr(rb_content);
46
+ c_content_len = RSTRING_LENINT(rb_content);
41
47
  }
42
48
 
43
- node = xmlNewCDataBlock(xml_doc, content_str, content_str_len);
49
+ c_node = xmlNewCDataBlock(c_document, c_content, c_content_len);
44
50
 
45
- noko_xml_document_pin_node(node);
51
+ noko_xml_document_pin_node(c_node);
46
52
 
47
- rb_node = noko_xml_node_wrap(klass, node);
53
+ rb_node = noko_xml_node_wrap(klass, c_node);
48
54
  rb_obj_call_init(rb_node, argc, argv);
49
55
 
50
56
  if (rb_block_given_p()) { rb_yield(rb_node); }
@@ -61,5 +67,5 @@ noko_init_xml_cdata(void)
61
67
  */
62
68
  cNokogiriXmlCData = rb_define_class_under(mNokogiriXml, "CDATA", cNokogiriXmlText);
63
69
 
64
- rb_define_singleton_method(cNokogiriXmlCData, "new", new, -1);
70
+ rb_define_singleton_method(cNokogiriXmlCData, "new", rb_xml_cdata_s_new, -1);
65
71
  }
@@ -100,11 +100,15 @@ memsize_node(const xmlNodePtr node)
100
100
  {
101
101
  /* note we don't count namespace definitions, just going for a good-enough number here */
102
102
  xmlNodePtr child;
103
+ xmlAttrPtr property;
103
104
  size_t memsize = 0;
104
105
 
105
106
  memsize += xmlStrlen(node->name);
106
- for (child = (xmlNodePtr)node->properties; child; child = child->next) {
107
- memsize += sizeof(xmlAttr) + memsize_node(child);
107
+
108
+ if (node->type == XML_ELEMENT_NODE) {
109
+ for (property = node->properties; property; property = property->next) {
110
+ memsize += sizeof(xmlAttr) + memsize_node((xmlNodePtr)property);
111
+ }
108
112
  }
109
113
  if (node->type == XML_TEXT_NODE) {
110
114
  memsize += xmlStrlen(node->content);
@@ -350,7 +350,7 @@ ok:
350
350
 
351
351
  xmlUnlinkNode(original_reparentee);
352
352
 
353
- if (prf != xmlAddPrevSibling && prf != xmlAddNextSibling
353
+ if (prf != xmlAddPrevSibling && prf != xmlAddNextSibling && prf != xmlAddChild
354
354
  && reparentee->type == XML_TEXT_NODE && pivot->next && pivot->next->type == XML_TEXT_NODE) {
355
355
  /*
356
356
  * libxml merges text nodes in a right-to-left fashion, meaning that if
@@ -203,7 +203,7 @@ read_memory(int argc, VALUE *argv, VALUE klass)
203
203
  * [Returns] Nokogiri::XML::Schema
204
204
  */
205
205
  static VALUE
206
- from_document(int argc, VALUE *argv, VALUE klass)
206
+ rb_xml_schema_s_from_document(int argc, VALUE *argv, VALUE klass)
207
207
  {
208
208
  VALUE rb_document;
209
209
  VALUE rb_parse_options;
@@ -214,14 +214,20 @@ from_document(int argc, VALUE *argv, VALUE klass)
214
214
 
215
215
  rb_scan_args(argc, argv, "11", &rb_document, &rb_parse_options);
216
216
 
217
- if (rb_obj_is_kind_of(rb_document, cNokogiriXmlDocument)) {
218
- c_document = noko_xml_document_unwrap(rb_document);
219
- } else {
217
+ if (!rb_obj_is_kind_of(rb_document, cNokogiriXmlNode)) {
218
+ rb_raise(rb_eTypeError,
219
+ "expected parameter to be a Nokogiri::XML::Document, received %"PRIsVALUE,
220
+ rb_obj_class(rb_document));
221
+ }
222
+
223
+ if (!rb_obj_is_kind_of(rb_document, cNokogiriXmlDocument)) {
220
224
  xmlNodePtr deprecated_node_type_arg;
221
225
  // TODO: deprecate allowing Node
222
226
  NOKO_WARN_DEPRECATION("Passing a Node as the first parameter to Schema.from_document is deprecated. Please pass a Document instead. This will become an error in a future release of Nokogiri.");
223
227
  Noko_Node_Get_Struct(rb_document, xmlNode, deprecated_node_type_arg);
224
228
  c_document = deprecated_node_type_arg->doc;
229
+ } else {
230
+ c_document = noko_xml_document_unwrap(rb_document);
225
231
  }
226
232
 
227
233
  if (noko_xml_document_has_wrapped_blank_nodes_p(c_document)) {
@@ -249,7 +255,7 @@ noko_init_xml_schema(void)
249
255
  rb_undef_alloc_func(cNokogiriXmlSchema);
250
256
 
251
257
  rb_define_singleton_method(cNokogiriXmlSchema, "read_memory", read_memory, -1);
252
- rb_define_singleton_method(cNokogiriXmlSchema, "from_document", from_document, -1);
258
+ rb_define_singleton_method(cNokogiriXmlSchema, "from_document", rb_xml_schema_s_from_document, -1);
253
259
 
254
260
  rb_define_private_method(cNokogiriXmlSchema, "validate_document", validate_document, 1);
255
261
  rb_define_private_method(cNokogiriXmlSchema, "validate_file", validate_file, 1);
@@ -9,33 +9,39 @@ VALUE cNokogiriXmlText ;
9
9
  * Create a new Text element on the +document+ with +content+
10
10
  */
11
11
  static VALUE
12
- new (int argc, VALUE *argv, VALUE klass)
12
+ rb_xml_text_s_new(int argc, VALUE *argv, VALUE klass)
13
13
  {
14
- xmlDocPtr doc;
15
- xmlNodePtr node;
16
- VALUE string;
17
- VALUE document;
18
- VALUE rest;
14
+ xmlDocPtr c_document;
15
+ xmlNodePtr c_node;
16
+ VALUE rb_string;
17
+ VALUE rb_document;
18
+ VALUE rb_rest;
19
19
  VALUE rb_node;
20
20
 
21
- rb_scan_args(argc, argv, "2*", &string, &document, &rest);
21
+ rb_scan_args(argc, argv, "2*", &rb_string, &rb_document, &rb_rest);
22
22
 
23
- if (rb_obj_is_kind_of(document, cNokogiriXmlDocument)) {
24
- doc = noko_xml_document_unwrap(document);
25
- } else {
23
+ if (!rb_obj_is_kind_of(rb_document, cNokogiriXmlNode)) {
24
+ rb_raise(rb_eTypeError,
25
+ "expected second parameter to be a Nokogiri::XML::Document, received %"PRIsVALUE,
26
+ rb_obj_class(rb_document));
27
+ }
28
+
29
+ if (!rb_obj_is_kind_of(rb_document, cNokogiriXmlDocument)) {
26
30
  xmlNodePtr deprecated_node_type_arg;
27
31
  // TODO: deprecate allowing Node
28
32
  NOKO_WARN_DEPRECATION("Passing a Node as the second parameter to Text.new is deprecated. Please pass a Document instead. This will become an error in a future release of Nokogiri.");
29
- Noko_Node_Get_Struct(document, xmlNode, deprecated_node_type_arg);
30
- doc = deprecated_node_type_arg->doc;
33
+ Noko_Node_Get_Struct(rb_document, xmlNode, deprecated_node_type_arg);
34
+ c_document = deprecated_node_type_arg->doc;
35
+ } else {
36
+ c_document = noko_xml_document_unwrap(rb_document);
31
37
  }
32
38
 
33
- node = xmlNewText((xmlChar *)StringValueCStr(string));
34
- node->doc = doc;
39
+ c_node = xmlNewText((xmlChar *)StringValueCStr(rb_string));
40
+ c_node->doc = c_document;
35
41
 
36
- noko_xml_document_pin_node(node);
42
+ noko_xml_document_pin_node(c_node);
37
43
 
38
- rb_node = noko_xml_node_wrap(klass, node) ;
44
+ rb_node = noko_xml_node_wrap(klass, c_node) ;
39
45
  rb_obj_call_init(rb_node, argc, argv);
40
46
 
41
47
  if (rb_block_given_p()) { rb_yield(rb_node); }
@@ -52,5 +58,5 @@ noko_init_xml_text(void)
52
58
  */
53
59
  cNokogiriXmlText = rb_define_class_under(mNokogiriXml, "Text", cNokogiriXmlCharacterData);
54
60
 
55
- rb_define_singleton_method(cNokogiriXmlText, "new", new, -1);
61
+ rb_define_singleton_method(cNokogiriXmlText, "new", rb_xml_text_s_new, -1);
56
62
  }
@@ -357,7 +357,7 @@ static void handle_parser_error (
357
357
  print_tag_stack(error, output);
358
358
  return;
359
359
  case GUMBO_TOKEN_END_TAG:
360
- print_message(output, "Eng tag '%s' isn't allowed here.",
360
+ print_message(output, "End tag '%s' isn't allowed here.",
361
361
  gumbo_normalized_tagname(error->input_tag));
362
362
  print_tag_stack(error, output);
363
363
  return;
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Nokogiri
4
4
  # The version of Nokogiri you are using
5
- VERSION = "1.15.2"
5
+ VERSION = "1.15.4"
6
6
  end
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.15.2
4
+ version: 1.15.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Dalessio
@@ -20,7 +20,7 @@ authors:
20
20
  autorequire:
21
21
  bindir: bin
22
22
  cert_chain: []
23
- date: 2023-05-24 00:00:00.000000000 Z
23
+ date: 2023-08-11 00:00:00.000000000 Z
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mini_portile2
@@ -272,7 +272,7 @@ files:
272
272
  - patches/libxml2/0010-update-config.guess-and-config.sub-for-libxml2.patch
273
273
  - patches/libxml2/0011-rip-out-libxml2-s-libc_single_threaded-support.patch
274
274
  - patches/libxslt/0001-update-config.guess-and-config.sub-for-libxslt.patch
275
- - ports/archives/libxml2-2.11.4.tar.xz
275
+ - ports/archives/libxml2-2.11.5.tar.xz
276
276
  - ports/archives/libxslt-1.1.38.tar.xz
277
277
  homepage: https://nokogiri.org
278
278
  licenses:
Binary file