summaryrefslogtreecommitdiffstats
path: root/vespalib/src
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2019-06-12 11:59:45 +0000
committerArne Juul <arnej@yahoo-inc.com>2019-06-12 12:09:47 +0000
commit07d3c4efed886275aa86b5c8587b768904237e04 (patch)
treeac32f459313617d83bfbcb36614343080c435d46 /vespalib/src
parent2b9aa7f40171f918fe1a906de8334d637aa8810b (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.cpp4
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 {