copilot-swe-agent[bot]
5b736326c7
Fix cj_dbl_to_i64 comment to accurately describe clamping behavior
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
Agent-Logs-Url: https://github.com/syoyo/tinygltf/sessions/74f01d98-ca42-4950-984e-458d4e3eeccd
2026-03-21 20:39:31 +00:00
copilot-swe-agent[bot]
a7b51ed0ed
Fix float32_mode integer parsing: preserve int64 precision for integer-only tokens
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
Agent-Logs-Url: https://github.com/syoyo/tinygltf/sessions/a77fd614-00f3-49c1-bb4a-0498771cc63b
2026-03-20 21:24:37 +00:00
Syoyo Fujita
ccc8115321
Update tinygltf_json.h
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-21 05:35:34 +09:00
Syoyo Fujita
f6c101ca28
Fix fuzzer-found bugs, add libFuzzer harness for v3
...
Add tests/v3/fuzzer/ with libFuzzer harness covering all four parse
paths (auto-detect, JSON, GLB, float32 mode) with ASan+UBSan.
Fix two bugs found by 10+ hours of fuzzing (~23M iterations):
1. UB: (int64_t)inf in cj_parse_number when extreme exponents like
22222222e222222 produce infinity. Add cj_dbl_to_i64() that clamps
inf/NaN/out-of-range values before casting.
2. Null deref in tg3__parse_string when glTF array elements are not
JSON objects (e.g. "scenes": [[3]]). Add is_object() validation
in TG3__PARSE_ARRAY_SIMPLE and TG3__PARSE_ARRAY_IDX macros.
Verified clean: 5.8M additional runs with zero crashes after fixes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-21 04:10:25 +09:00
Syoyo Fujita
108a4065d0
Add fast float parser and benchmark float-heavy scene
...
Replace strtod() with Clinger's fast path in tinygltf_json.h for ~1.5x
faster JSON float parsing. The new parser accumulates all digits into a
uint64 mantissa and uses exact power-of-10 tables for conversion,
avoiding locale-dependent strtod for ~99% of JSON float values.
Add optional float32 parse mode (parse_float32 option) that parses JSON
floats at single precision — fewer significant digits needed, wider fast
path range. Breaks strict double-precision conformance but sufficient
for glTF data which is typically single-precision.
Benchmark additions:
- gen_synthetic: add float_heavy preset (~500MB ASCII float JSON)
- bench_v3: add --float32 flag for float32 parse mode benchmarking
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-20 09:00:30 +09:00
copilot-swe-agent[bot]
61976df9bf
Super final review: fix cj_unescape_string data-loss, escape-scan infinite loop, operator[] destructor
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
2026-03-18 21:44:18 +00:00
copilot-swe-agent[bot]
6a9ab4cc5e
Final review: fix stray *out_len=len UB, add get<T> primary template for size_t
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
2026-03-18 20:16:01 +00:00
Syoyo Fujita
27ead283a0
Potential fix for pull request finding
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-19 02:39:27 +09:00
Syoyo Fujita
2e96f282a0
Potential fix for pull request finding
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-19 02:39:13 +09:00
Syoyo Fujita
0da972149a
Potential fix for pull request finding
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-19 02:38:55 +09:00
Syoyo Fujita
18dda78116
Potential fix for pull request finding
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-19 02:38:40 +09:00
Syoyo Fujita
d910e58c3a
Potential fix for pull request finding
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-19 02:38:28 +09:00
Syoyo Fujita
1d34438a74
Potential fix for pull request finding
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-19 02:37:50 +09:00
Syoyo Fujita
239e832bf7
Potential fix for pull request finding
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-19 02:37:37 +09:00
copilot-swe-agent[bot]
fe23326b70
Mitochondria-level review: fix NULL ptr + nonzero length → serializer overread (6 sites)
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
2026-03-18 04:34:13 +00:00
copilot-swe-agent[bot]
28c139869a
Deepest-ever review: NaN/Inf->null, operator[] null key, copy_from_ arr_size_ tracking
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
2026-03-18 04:10:06 +00:00
copilot-swe-agent[bot]
b611d7b1f5
Ultra deep final review: 6 correctness/safety fixes in tinygltf_json.h
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
2026-03-18 03:32:36 +00:00
copilot-swe-agent[bot]
4a05b8e0f3
Fix security/correctness issues from thorough code review of tinygltf_json.h
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
2026-03-17 23:17:24 +00:00
copilot-swe-agent[bot]
36cf721b8c
Make C++ exceptions optional in tinygltf_json.h (default off)
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
2026-03-17 19:33:02 +00:00
copilot-swe-agent[bot]
a1c09a7760
Replace recursive parser with iterative loop using CJ_MAX_ITER explicit frame stack
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
2026-03-17 19:24:38 +00:00
copilot-swe-agent[bot]
8c0bb9739d
Security fixes: null key guard, allocation overflow protection, parser depth limit
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
2026-03-17 16:02:25 +00:00
copilot-swe-agent[bot]
8f8b5ec1e0
Add tinygltf_json.h: fast custom JSON parser with optional SIMD support
...
Co-authored-by: syoyo <18676+syoyo@users.noreply.github.com >
2026-03-17 15:49:46 +00:00