leptris 1.9.368.1-ppc64le-linux → 1.9.369.1-ppc64le-linux

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a9f080aaa7146688d0de80520eb91b6377e22fa1ff6b45033ac349b7b24b274f
4
- data.tar.gz: ee97afd2b4faaf64a9d57bec5633bc5a026bda9e6fb192d8b3cd34a6f0192672
3
+ metadata.gz: 0f451671bfbfef2c8214b8b0048cd9e194a11d0fc785a4103d55d4b6ab433b8b
4
+ data.tar.gz: 3dba06c1dcd64872e7fbb5c6571973eae7851bc169ee339c9f7f3de317869bb7
5
5
  SHA512:
6
- metadata.gz: 3abda08bb47737ca15bee7ec88e64c5f98887b8fe050e70defd72e961fb609398e56f9f80a23142a47a92f398234d0bf42f170a9e323c5fa9032dff33c9a0a22
7
- data.tar.gz: 282b05fdc6b475a5075f3348d4d24186c9f0f4c10bd9cb119076661f9f909b88c7484a7ab9d41616d34ff6241a1c061919fccb2e9d8deb8f40f84846cb082e56
6
+ metadata.gz: 350a63801e8dda06cf2c77b76183eaef92d10a7af1ab3734b2b673f81c56a4aa394c9c87b8cf707b4336fc9152ee74d531ae1a16eda611794e4aa81a2eeccb24
7
+ data.tar.gz: ec987fd143eeae44588459b5a1394d56bc540a2496ac9ec7df4c068fd7ed6e2dec91697f90e7e1e6c31102048e285959cdb3a7964230002847cc0d1f1b6ea7ff
data/Rakefile CHANGED
@@ -8,7 +8,7 @@ RSpec::Core::RakeTask.new(:spec)
8
8
  # Pin for `rake compile` and the platform-gem builds. Keep in lockstep
9
9
  # with .github/workflows/build.yml (which calls `rake compile`) and the
10
10
  # CHANGELOG when libleptris releases.
11
- LIBLEPTRIS_VERSION = "1.9.368"
11
+ LIBLEPTRIS_VERSION = "1.9.369"
12
12
  # Vendored alongside libleptris for fn:normalize-unicode (TODO
13
13
  # .restructure/20): built per platform with a RELOCATABLE @rpath
14
14
  # install name, loaded by ffi.rb before libleptris so the
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Leptris
4
- VERSION = "1.9.368.1"
4
+ VERSION = "1.9.369.1"
5
5
  end
data/lib/libleptris.so CHANGED
Binary file
data/vendor-src/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  Sources vendored in this gem (recompile rights; the ruby
2
2
  variant builds them at install via extconf.rb):
3
3
 
4
- - libleptris v1.9.368
4
+ - libleptris v1.9.369
5
5
  - utf8proc v2.11.0
6
6
 
7
7
  Rebuild by hand:
@@ -1,5 +1,24 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.9.369] - 2026-10-18
4
+
5
+ ### Added
6
+
7
+ - **test: falsifiable kind-safety pin for the #487 class (PR #1765).**
8
+ The #487 fix's original contract test passes on both sides of the fix
9
+ (a pool-created detached text survives the element-form misread), so
10
+ it could not catch a regression. `OversizedTextKindSafe` uses the
11
+ shape that actually crashed in the wild — HEAP-BACKED text (oversized
12
+ content leaves the inline-window allocation) — and asserts the
13
+ kind-safe contract end to end: get_document answers the text's own
14
+ owner document (the observable red on pre-fix source was NULL — the
15
+ same element-form misread that wild-pointer-walked under the
16
+ reporter's GC timing), and the oversized text attaches through the
17
+ addr face and round-trips byte-exactly. Falsifiability verified both
18
+ ways: RED on pre-fix source (deterministic NULL), GREEN on the
19
+ fixed source. Test-only.
20
+
21
+
3
22
  ## [1.9.368] - 2026-10-18
4
23
 
5
24
  ### Fixed
@@ -3,7 +3,7 @@
3
3
  cmake_minimum_required(VERSION 3.20)
4
4
 
5
5
  project(leptris
6
- VERSION 1.9.368
6
+ VERSION 1.9.369
7
7
  DESCRIPTION "Fast XML parser and XPath evaluator in pure C"
8
8
  LANGUAGES C CXX
9
9
  )
@@ -3078,6 +3078,36 @@ TEST(DomAttachInstalled, ForeignMixedChainTextBeforeElement) {
3078
3078
  * usually survives the misread; a recycled or heap-backed text
3079
3079
  * hands the walk a wild pointer and the process dies. The face (and
3080
3080
  * get_document itself) must be kind-safe. */
3081
+ /* leptris-ruby#487, the falsifiable pin: the crashing texts in the
3082
+ * wild were HEAP-BACKED (oversized content leaves the inline window —
3083
+ * the pool-created text of TextChildAttachIsKindSafe survives the
3084
+ * element-form misread, so that test alone cannot go red). An
3085
+ * oversized text must resolve its document through its OWN owner
3086
+ * field, attach, and round-trip — never through element-form reads. */
3087
+ TEST(DomAttachInstalled, OversizedTextKindSafe) {
3088
+ LeptrisStatus st = LEPTRIS_OK;
3089
+ LeptrisDocument d = leptris_parse_string("<r/>", 4, &st);
3090
+ ASSERT_NE(d, nullptr);
3091
+ LeptrisElement root = leptris_document_root(d);
3092
+
3093
+ std::string big(8192, 'x');
3094
+ LeptrisNodeRef text = leptris_text_node_create(d, big.c_str());
3095
+ ASSERT_NE(text, nullptr);
3096
+ EXPECT_EQ(leptris_node_get_type(text), LEPTRIS_NODE_TYPE_TEXT);
3097
+
3098
+ /* kind-safe document resolution: the text's OWN owner doc */
3099
+ EXPECT_EQ(leptris_element_get_document((LeptrisElement)text), d);
3100
+
3101
+ EXPECT_EQ(leptris_element_add_child_addr_installed(
3102
+ (uintptr_t)root, (uintptr_t)text, NULL),
3103
+ LEPTRIS_OK);
3104
+ char* out = leptris_element_serialize(root, nullptr);
3105
+ ASSERT_NE(out, nullptr);
3106
+ EXPECT_EQ(std::string(out), "<r>" + big + "</r>");
3107
+ leptris_free_string(out);
3108
+ leptris_document_free(d);
3109
+ }
3110
+
3081
3111
  TEST(DomAttachInstalled, TextChildAttachIsKindSafe) {
3082
3112
  LeptrisStatus st = LEPTRIS_OK;
3083
3113
  LeptrisDocument d = leptris_parse_string("<r/>", 4, &st);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
3
3
  "name": "leptris",
4
- "version": "1.9.368",
4
+ "version": "1.9.369",
5
5
  "description": "High-performance XML parser and XPath 1.0 engine in C (libleptris)",
6
6
  "homepage": "https://github.com/leptris/leptris",
7
7
  "license": "MIT",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leptris
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.368.1
4
+ version: 1.9.369.1
5
5
  platform: ppc64le-linux
6
6
  authors:
7
7
  - Ribose Inc.