json 2.19.2-java → 2.19.4-java
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/CHANGES.md +18 -2
- data/lib/json/ext/generator.jar +0 -0
- data/lib/json/ext/parser.jar +0 -0
- data/lib/json/truffle_ruby/generator.rb +8 -8
- data/lib/json/version.rb +1 -1
- data/lib/json.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a6ba9ad6b206d6d9a14e7e98407f38a7e2f86c55d32005a88272401812407a89
|
|
4
|
+
data.tar.gz: 1b16463800eb3a27a9aaac47f2ea52a26755f678044eb34b4f90604583a88e6d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 45a3edef6c8531203af73973e0341dc23e8914f04e67c34cc65f72528748e328b39e06027ad9f5758b85a4a101e2a0101d2e4891850c0da7b585d4b2576c68bb
|
|
7
|
+
data.tar.gz: c02bcc65e769bf9dd495226b00eceff36c178aa19559b4857599f1167b9924bf89c4b3b7c0810c8f76aca6ba22be10fa9100ba40c2f2d37bdd628556717512a7
|
data/CHANGES.md
CHANGED
|
@@ -2,9 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
### Unreleased
|
|
4
4
|
|
|
5
|
-
### 2026-
|
|
5
|
+
### 2026-04-19 (2.19.4)
|
|
6
6
|
|
|
7
|
-
* Fix
|
|
7
|
+
* Fix parsing of out of range floats (very large exponents that lead ot either `0.0` or `Inf`).
|
|
8
|
+
|
|
9
|
+
### 2026-03-25 (2.19.3)
|
|
10
|
+
|
|
11
|
+
* Fix handling of unescaped control characters preceeded by a backslash.
|
|
12
|
+
|
|
13
|
+
### 2026-03-18 (2.19.2)
|
|
14
|
+
|
|
15
|
+
* Fix a format string injection vulnerability in `JSON.parse(doc, allow_duplicate_key: false)`. `CVE-2026-33210`.
|
|
8
16
|
|
|
9
17
|
### 2026-03-08 (2.19.1)
|
|
10
18
|
|
|
@@ -24,6 +32,10 @@
|
|
|
24
32
|
|
|
25
33
|
* Add `:allow_control_characters` parser options, to allow JSON strings containing unescaped ASCII control characters (e.g. newlines).
|
|
26
34
|
|
|
35
|
+
### 2026-03-18 (2.17.1.2) - Security Backport
|
|
36
|
+
|
|
37
|
+
* Fix a format string injection vulnerability in `JSON.parse(doc, allow_duplicate_key: false)`. `CVE-2026-33210`.
|
|
38
|
+
|
|
27
39
|
### 2025-12-04 (2.17.1)
|
|
28
40
|
|
|
29
41
|
* Fix a regression in parsing of unicode surogate pairs (`\uXX\uXX`) that could cause an invalid string to be returned.
|
|
@@ -50,6 +62,10 @@
|
|
|
50
62
|
* Optimized numbers parsing using SWAR (thanks to Scott Myron).
|
|
51
63
|
* Optimized parsing of pretty printed documents using SWAR (thanks to Scott Myron).
|
|
52
64
|
|
|
65
|
+
### 2026-03-18 (2.15.2.1) - Security Backport
|
|
66
|
+
|
|
67
|
+
* Fix a format string injection vulnerability in `JSON.parse(doc, allow_duplicate_key: false)`. `CVE-2026-33210`.
|
|
68
|
+
|
|
53
69
|
### 2025-10-25 (2.15.2)
|
|
54
70
|
|
|
55
71
|
* Fix `JSON::Coder` to have one dedicated depth counter per invocation.
|
data/lib/json/ext/generator.jar
CHANGED
|
Binary file
|
data/lib/json/ext/parser.jar
CHANGED
|
Binary file
|
|
@@ -48,7 +48,7 @@ module JSON
|
|
|
48
48
|
SCRIPT_SAFE_ESCAPE_PATTERN = /[\/"\\\x0-\x1f\u2028-\u2029]/
|
|
49
49
|
|
|
50
50
|
def self.native_type?(value) # :nodoc:
|
|
51
|
-
(false == value || true == value || nil == value || String === value || Array === value || Hash === value || Integer === value || Float === value || Fragment === value)
|
|
51
|
+
(false == value || true == value || nil == value || String === value || Symbol === value || Array === value || Hash === value || Integer === value || Float === value || Fragment === value)
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
def self.native_key?(key) # :nodoc:
|
|
@@ -517,11 +517,11 @@ module JSON
|
|
|
517
517
|
|
|
518
518
|
if empty?
|
|
519
519
|
state.depth -= 1
|
|
520
|
-
return '{}'
|
|
520
|
+
return +'{}'
|
|
521
521
|
end
|
|
522
522
|
|
|
523
523
|
delim = ",#{state.object_nl}"
|
|
524
|
-
result =
|
|
524
|
+
result = "{#{state.object_nl}"
|
|
525
525
|
first = true
|
|
526
526
|
key_type = nil
|
|
527
527
|
indent = !state.object_nl.empty?
|
|
@@ -558,7 +558,7 @@ module JSON
|
|
|
558
558
|
raise TypeError, "#{key.class}#to_s returns an instance of #{key_str.class}, expected a String"
|
|
559
559
|
end
|
|
560
560
|
|
|
561
|
-
result =
|
|
561
|
+
result = "#{result}#{key_json}#{state.space_before}:#{state.space}"
|
|
562
562
|
if state.strict? && !Generator.native_type?(value)
|
|
563
563
|
if state.as_json
|
|
564
564
|
value = state.as_json.call(value, false)
|
|
@@ -609,7 +609,7 @@ module JSON
|
|
|
609
609
|
|
|
610
610
|
if empty?
|
|
611
611
|
state.depth -= 1
|
|
612
|
-
return '[]'
|
|
612
|
+
return +'[]'
|
|
613
613
|
end
|
|
614
614
|
|
|
615
615
|
result = '['.dup
|
|
@@ -734,17 +734,17 @@ module JSON
|
|
|
734
734
|
|
|
735
735
|
module TrueClass
|
|
736
736
|
# Returns a JSON string for true: 'true'.
|
|
737
|
-
def to_json(*) 'true' end
|
|
737
|
+
def to_json(*) +'true' end
|
|
738
738
|
end
|
|
739
739
|
|
|
740
740
|
module FalseClass
|
|
741
741
|
# Returns a JSON string for false: 'false'.
|
|
742
|
-
def to_json(*) 'false' end
|
|
742
|
+
def to_json(*) +'false' end
|
|
743
743
|
end
|
|
744
744
|
|
|
745
745
|
module NilClass
|
|
746
746
|
# Returns a JSON string for nil: 'null'.
|
|
747
|
-
def to_json(*) 'null' end
|
|
747
|
+
def to_json(*) +'null' end
|
|
748
748
|
end
|
|
749
749
|
end
|
|
750
750
|
end
|
data/lib/json/version.rb
CHANGED
data/lib/json.rb
CHANGED
|
@@ -335,8 +335,8 @@ require 'json/common'
|
|
|
335
335
|
# JSON.generate(JSON::MinusInfinity)
|
|
336
336
|
#
|
|
337
337
|
# Allow:
|
|
338
|
-
# ruby = [Float::
|
|
339
|
-
# JSON.generate(ruby, allow_nan: true) # => '[NaN,Infinity,-Infinity]'
|
|
338
|
+
# ruby = [Float::NAN, Float::INFINITY, JSON::NaN, JSON::Infinity, JSON::MinusInfinity]
|
|
339
|
+
# JSON.generate(ruby, allow_nan: true) # => '[NaN,Infinity,NaN,Infinity,-Infinity]'
|
|
340
340
|
#
|
|
341
341
|
# ---
|
|
342
342
|
#
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: json
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.19.
|
|
4
|
+
version: 2.19.4
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel Luz
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-
|
|
10
|
+
date: 2026-04-18 00:00:00.000000000 Z
|
|
11
11
|
dependencies: []
|
|
12
12
|
description: A JSON implementation as a JRuby extension.
|
|
13
13
|
email: dev+ruby@mernen.com
|