leptris 1.9.368.1 → 1.9.369.1
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 +4 -4
- data/Rakefile +1 -1
- data/lib/leptris/vendor/aarch64-linux/libleptris.so +0 -0
- data/lib/leptris/vendor/aarch64-linux-musl/libleptris.so +0 -0
- data/lib/leptris/vendor/arm-linux/libleptris.so +0 -0
- data/lib/leptris/vendor/arm-linux-musl/libleptris.so +0 -0
- data/lib/leptris/vendor/arm64-darwin/libleptris.dylib +0 -0
- data/lib/leptris/vendor/ppc64le-linux/libleptris.so +0 -0
- data/lib/leptris/vendor/s390x-linux-musl/libleptris.so +0 -0
- data/lib/leptris/vendor/x86_64-darwin/libleptris.dylib +0 -0
- data/lib/leptris/vendor/x86_64-linux/libleptris.so +0 -0
- data/lib/leptris/vendor/x86_64-linux-musl/libleptris.so +0 -0
- data/lib/leptris/version.rb +1 -1
- data/vendor-src/README.md +1 -1
- data/vendor-src/libleptris/CHANGELOG.md +19 -0
- data/vendor-src/libleptris/CMakeLists.txt +1 -1
- data/vendor-src/libleptris/test/dom/test_dom.cpp +30 -0
- data/vendor-src/libleptris/vcpkg.json +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 119dd3417c3112db688622491e4f7bc2b748557dee198b4f10ce11d70b5a7cf7
|
|
4
|
+
data.tar.gz: 702eb13ed592dc01276376bf251b5ecfe53f121779e1d49133fb8600dd340395
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f771d5a9356384f1a80a34fcf6a8ce5c6903091c328b0a9330e646908c9c3a493a15206902d8eed0ed44c77d6c618c990e77afea8da3459702c5e2f0257b5608
|
|
7
|
+
data.tar.gz: 6b6526cff3611273d3c44d2738d56db4807f1f51e23ae3ba008970765227b6544ec81fa074ff76c887dfaceb6e8c7566456189f93713dfbf20a5e0a0aea3e285
|
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.
|
|
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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/lib/leptris/version.rb
CHANGED
data/vendor-src/README.md
CHANGED
|
@@ -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
|
|
@@ -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.
|
|
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",
|