diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2019-06-12 11:59:45 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2019-06-12 12:09:47 +0000 |
commit | 07d3c4efed886275aa86b5c8587b768904237e04 (patch) | |
tree | ac32f459313617d83bfbcb36614343080c435d46 /vespalib/src | |
parent | 2b9aa7f40171f918fe1a906de8334d637aa8810b (diff) |
minor fixes in JSON number parsing
* only fail if number conversion fails, no failure on
overflow / underflow.
* JSON does not support octal or hex numbers.
Diffstat (limited to 'vespalib/src')
-rw-r--r-- | vespalib/src/vespa/vespalib/data/slime/json_format.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/vespalib/src/vespa/vespalib/data/slime/json_format.cpp b/vespalib/src/vespa/vespalib/data/slime/json_format.cpp index 637be8db999..e97786888e8 100644 --- a/vespalib/src/vespa/vespalib/data/slime/json_format.cpp +++ b/vespalib/src/vespa/vespalib/data/slime/json_format.cpp @@ -434,7 +434,7 @@ JsonDecoder::decodeNumber(Inserter &inserter) default: char *endp; int errorCode = insertNumber(inserter, isLong, value, &endp); - if (errorCode != 0) { + if (endp == value.c_str()) { std::stringstream ss; ss << "error inserting number " << value << ". error code: " << errorCode << ". endp - value: " << (endp - value.c_str()); in.fail(ss.str()); @@ -450,7 +450,7 @@ insertNumber(Inserter &inserter, bool isLong, const vespalib::string & value, ch int errorCode = 0; errno = 0; if (isLong) { - long val = strtol(value.c_str(), endp, 0); + long val = strtol(value.c_str(), endp, 10); errorCode = errno; inserter.insertLong(val); } else { |