Fix number reading in the presence of Infinity: Only check for infinity if we have a leading sign character.
diff --git a/src/lib_json/json_reader.cpp b/src/lib_json/json_reader.cpp
index a8b1fe2..5b2f7b6 100644
--- a/src/lib_json/json_reader.cpp
+++ b/src/lib_json/json_reader.cpp
@@ -988,7 +988,7 @@
   bool readCppStyleComment();
   bool readString();
   bool readStringSingleQuote();
-  bool readNumber();
+  bool readNumber(bool checkInf);
   bool readValue();
   bool readObject(Token& token);
   bool readArray(Token& token);
@@ -1246,8 +1246,11 @@
   case '7':
   case '8':
   case '9':
+    token.type_ = tokenNumber;
+    readNumber(false);
+    break;
   case '-':
-    if (readNumber()) {
+    if (readNumber(true)) {
       token.type_ = tokenNumber;
     } else {
       token.type_ = tokenNegInf;
@@ -1382,9 +1385,9 @@
   return true;
 }
 
-bool OurReader::readNumber() {
+bool OurReader::readNumber(bool checkInf) {
   const char *p = current_;
-  if (p != end_ && *p == 'I') {
+  if (checkInf && p != end_ && *p == 'I') {
     current_ = ++p;
     return false;
   }