Browse Source

Util: Fix Parser number error detection

master
Riyyi 2 years ago
parent
commit
5d844554f5
  1. 16
      src/util/json/parser.cpp

16
src/util/json/parser.cpp

@ -211,14 +211,16 @@ Value Parser::getNumber()
} }
} }
if (fractionPosition == exponentPosition - 1) { if (fractionPosition != 0 || exponentPosition != 0) {
reportError(token, "invalid exponent sign, expected number"); if (fractionPosition == exponentPosition - 1) {
return nullptr; reportError(token, "invalid exponent sign, expected number");
} return nullptr;
}
if (fractionPosition == length - 1 || exponentPosition == length - 1) { if (fractionPosition == length - 1 || exponentPosition == length - 1) {
reportError(token, "invalid number"); reportError(token, "invalid number");
return nullptr; return nullptr;
}
} }
return std::stod(token.symbol); return std::stod(token.symbol);

Loading…
Cancel
Save