Skip to content

Fix: peekNumber rejects some numerals like 2^64 + "0"#2114

Merged
JakeWharton merged 1 commit into
square:masterfrom
ogolberg:leading-zero-overflow-fix-2.x
Jun 11, 2026
Merged

Fix: peekNumber rejects some numerals like 2^64 + "0"#2114
JakeWharton merged 1 commit into
square:masterfrom
ogolberg:leading-zero-overflow-fix-2.x

Conversation

@ogolberg

@ogolberg ogolberg commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Issue: the "leading zero" logic in peekNumber, which tries to reject octal representations, does not account for long overflows. This results in valid numeric literals like "184467440737095516160" (2^64 + "0") being rejected in STRICT parsing mode.

The easiest way to reproduce this is to serialize and deserialize a BigInteger with the value above.

This is a minimal fix which adds an overflow check to the leading zero condition.

This bug was inherited from Gson, see google/gson#3034. It affects 1.x as well.

…octal representations, does not account for long overflows. This results in valid numeric literals like "184467440737095516160" (2^64 + "0") being rejected in STRICT parsing mode.

The easiest way to reproduce this is to serialize and deserialize a BigInteger with the value above.

This is a minimal fix which adds an overflow check to the leading zero condition.

This bug was inherited from Gson, see google/gson#3034.
@JakeWharton

Copy link
Copy Markdown
Collaborator

Was this discovered in the wild? The problem is that I'm not sure there will ever be another release of Moshi...

At this point I think I'm going to move the master branch to future and make a new trunk which is based on the 1.x series where we can continue to release bug fixes.

@ogolberg

ogolberg commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the info! Yes, I ran into this in the wild. I have a workaround and can fork Moshi if necessary.

@JakeWharton JakeWharton merged commit 1d855c7 into square:master Jun 11, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants