Niels Lohmann
7e3dfc70c6
Compare dump()s instead of json values in the BJData fuzzer's round-trip check
...
The value-stability assertion added to fix the earlier OSS-Fuzz crash
(json::from_bjdata(to_bjdata(j2)) == j2) itself broke on a NaN payload:
IEEE 754 NaN is never equal to itself, so operator== reports two
structurally-identical trees containing a non-finite double as
different -- not a round-trip bug, just NaN's ordinary
non-reflexivity. dump() serializes any non-finite double the same
deterministic way (as JSON null, since JSON cannot represent NaN or
Infinity), so comparing dumps is stable under exactly the values that
break operator==.
Verified against both the original OSS-Fuzz crash input and the new
one (0x68 0x68 0x7c, which decodes to a NaN), plus a local 2.5M-case
random-input sweep with no failures.
Signed-off-by: Niels Lohmann <mail@nlohmann.me >
2026-09-09 10:21:29 +02:00
..
2026-01-01 20:00:39 +01:00
2026-09-09 10:21:29 +02:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-09-09 09:50:39 +02:00
2026-07-31 18:04:30 +02:00
2026-07-08 16:40:58 +02:00
2026-07-09 20:18:28 +02:00
2026-07-09 06:44:51 +02:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-09-09 10:21:29 +02:00
2026-09-09 09:52:23 +02:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-08-19 20:19:47 +02:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-09-09 09:50:39 +02:00
2026-09-09 09:50:39 +02:00
2026-09-05 09:43:07 +02:00
2026-01-01 20:00:39 +01:00
2026-07-09 20:38:39 +02:00
2026-01-01 20:00:39 +01:00
2026-07-08 20:25:13 +02:00
2026-09-09 09:54:12 +02:00
2026-01-01 20:00:39 +01:00
2026-08-03 08:35:53 +02:00
2026-01-01 20:00:39 +01:00
2026-08-05 16:01:23 +02:00
2026-05-22 14:14:11 +02:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-07-02 06:35:35 +02:00
2026-07-02 15:59:36 +02:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-09-09 09:52:58 +02:00
2026-09-09 09:52:58 +02:00
2026-01-01 20:00:39 +01:00
2026-07-09 20:38:39 +02:00
2026-01-01 20:00:39 +01:00
2026-09-09 09:49:12 +02:00
2026-09-09 09:53:25 +02:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-08-28 13:38:28 +01:00
2026-07-11 15:09:28 +02:00
2026-09-09 09:48:17 +02:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-05-14 15:39:18 +02:00
2026-05-18 20:33:47 +02:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-09-09 09:52:58 +02:00
2026-09-09 09:50:39 +02:00
2026-09-09 09:50:39 +02:00
2026-07-02 15:59:36 +02:00
2026-01-01 20:00:39 +01:00
2026-01-01 20:00:39 +01:00
2026-08-03 08:35:53 +02:00
2026-08-25 07:16:10 +01:00
2026-01-01 20:00:39 +01:00
2026-05-16 10:04:22 +02:00
2026-01-01 20:00:39 +01:00
2026-09-09 09:50:39 +02:00
2026-09-09 09:50:39 +02:00
2026-09-09 09:50:39 +02:00
2026-09-09 09:50:39 +02:00
2026-09-09 09:50:39 +02:00
2026-07-12 09:16:06 +02:00
2026-01-01 20:00:39 +01:00
2026-08-05 13:43:36 +02:00
2026-01-01 20:00:39 +01:00