diff options
author | Arnstein Ressem <aressem@gmail.com> | 2017-10-02 14:51:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-02 14:51:12 +0200 |
commit | 4a46361afd24f614291a83a3d0cad02e57754040 (patch) | |
tree | f9ef525845c92cc9fe713db2d818a70261b65660 /config | |
parent | 745ebb77abd4c51bcf3b9a38f162f3c6258012f7 (diff) |
Revert "Havardpe/avoid reading past json value in slime json parser"
Diffstat (limited to 'config')
-rw-r--r-- | config/src/vespa/config/frt/frtconfigresponsev3.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/config/src/vespa/config/frt/frtconfigresponsev3.cpp b/config/src/vespa/config/frt/frtconfigresponsev3.cpp index 379ebbd1803..3791d3c55b7 100644 --- a/config/src/vespa/config/frt/frtconfigresponsev3.cpp +++ b/config/src/vespa/config/frt/frtconfigresponsev3.cpp @@ -58,13 +58,11 @@ FRTConfigResponseV3::readConfigValue() const Slime * rawData = new Slime(); SlimePtr payloadData(rawData); DecompressedData data(decompress(((*_returnValues)[1]._data._buf), ((*_returnValues)[1]._data._len), info.compressionType, info.uncompressedSize)); - if (data.memRef.size > 0) { - size_t consumedSize = JsonFormat::decode(data.memRef, *rawData); - if (consumedSize == 0) { - std::string json(make_json(*payloadData, true)); - LOG(error, "Error decoding JSON. Consumed size: %lu, uncompressed size: %u, compression type: %s, assumed uncompressed size(%u), compressed size: %u, slime(%s)", consumedSize, data.size, compressionTypeToString(info.compressionType).c_str(), info.uncompressedSize, ((*_returnValues)[1]._data._len), json.c_str()); - assert(false); - } + size_t consumedSize = JsonFormat::decode(data.memRef, *rawData); + if (consumedSize != data.size) { + std::string json(make_json(*payloadData, true)); + LOG(error, "Error decoding JSON. Consumed size: %lu, uncompressed size: %u, compression type: %s, assumed uncompressed size(%u), compressed size: %u, slime(%s)", consumedSize, data.size, compressionTypeToString(info.compressionType).c_str(), info.uncompressedSize, ((*_returnValues)[1]._data._len), json.c_str()); + assert(false); } if (LOG_WOULD_LOG(spam)) { LOG(spam, "read config value md5(%s), payload size: %lu", md5.c_str(), data.memRef.size); |