From: Jesse McDonald Date: Tue, 27 Jun 2017 10:34:11 +0000 (-0500) Subject: Fix for empty key/value when reading item string with wear but no metadata (#6058) X-Git-Tag: 0.4.17~106 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=46ff2e2cefe55d3511da06c210ea16cbbc1c9ee3;p=oweals%2Fminetest.git Fix for empty key/value when reading item string with wear but no metadata (#6058) --- diff --git a/src/itemstackmetadata.cpp b/src/itemstackmetadata.cpp index c3d602245..65829fd68 100644 --- a/src/itemstackmetadata.cpp +++ b/src/itemstackmetadata.cpp @@ -28,16 +28,18 @@ void ItemStackMetadata::deSerialize(std::istream &is) m_stringvars.clear(); - if (!in.empty() && in[0] == DESERIALIZE_START) { - Strfnd fnd(in); - fnd.to(1); - while (!fnd.at_end()) { - std::string name = fnd.next(DESERIALIZE_KV_DELIM_STR); - std::string var = fnd.next(DESERIALIZE_PAIR_DELIM_STR); - m_stringvars[name] = var; + if (!in.empty()) { + if (in[0] == DESERIALIZE_START) { + Strfnd fnd(in); + fnd.to(1); + while (!fnd.at_end()) { + std::string name = fnd.next(DESERIALIZE_KV_DELIM_STR); + std::string var = fnd.next(DESERIALIZE_PAIR_DELIM_STR); + m_stringvars[name] = var; + } + } else { + // BACKWARDS COMPATIBILITY + m_stringvars[""] = in; } - } else { - // BACKWARDS COMPATIBILITY - m_stringvars[""] = in; } }