From 0b568488e3bfca6ec25140920ac040591d89bcbf Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Mon, 16 Sep 2024 17:48:25 +0200 Subject: [PATCH] RapidJSON: fix bug when parsing NaN, Inf with fraction or exponent parts Merge Tencent/rapidjson@7c73dd7de7c4f14379b781418c6e947ad464c818 --- src/thirdparty/rapidjson/reader.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/thirdparty/rapidjson/reader.h b/src/thirdparty/rapidjson/reader.h index 55546601..f7ef6102 100644 --- a/src/thirdparty/rapidjson/reader.h +++ b/src/thirdparty/rapidjson/reader.h @@ -1584,7 +1584,7 @@ private: // Parse frac = decimal-point 1*DIGIT int expFrac = 0; size_t decimalPosition; - if (Consume(s, '.')) { + if (!useNanOrInf && Consume(s, '.')) { decimalPosition = s.Length(); if (RAPIDJSON_UNLIKELY(!(s.Peek() >= '0' && s.Peek() <= '9'))) @@ -1631,7 +1631,7 @@ private: // Parse exp = e [ minus / plus ] 1*DIGIT int exp = 0; - if (Consume(s, 'e') || Consume(s, 'E')) { + if (!useNanOrInf && (Consume(s, 'e') || Consume(s, 'E'))) { if (!useDouble) { d = static_cast(use64bit ? i64 : i); useDouble = true;