From 61d2caee9f9474a6ccb6c13a4727e3527bd7c938 Mon Sep 17 00:00:00 2001 From: Vadim Savchuk Date: Mon, 22 Mar 2010 21:47:56 +0200 Subject: Fixed bug EXT-6446 (Profile Real World description gets messed up if out of the old characters' number limit). Submitting on behalf of Dmitry Zaporozhan. Reviewed by me and Richard: https://codereview.productengine.com/secondlife/r/67/ --HG-- branch : product-engine --- indra/llmessage/lltemplatemessagebuilder.cpp | 2 +- indra/llmessage/lltemplatemessagereader.cpp | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'indra/llmessage') diff --git a/indra/llmessage/lltemplatemessagebuilder.cpp b/indra/llmessage/lltemplatemessagebuilder.cpp index 55379fc6fd..fa02456d90 100644 --- a/indra/llmessage/lltemplatemessagebuilder.cpp +++ b/indra/llmessage/lltemplatemessagebuilder.cpp @@ -326,7 +326,7 @@ void LLTemplateMessageBuilder::addData(const char *varname, const void *data, EM << "(" << size << "). Clamping size and truncating data." << llendl; size = 255; char *truncate = (char *)data; - truncate[255] = 0; + truncate[254] = 0; // array size is 255 but the last element index is 254 } // no correct size for MVT_VARIABLE, instead we need to tell how many bytes the size will be encoded as diff --git a/indra/llmessage/lltemplatemessagereader.cpp b/indra/llmessage/lltemplatemessagereader.cpp index 6682575ca5..8f56cf2521 100644 --- a/indra/llmessage/lltemplatemessagereader.cpp +++ b/indra/llmessage/lltemplatemessagereader.cpp @@ -433,10 +433,9 @@ inline void LLTemplateMessageReader::getString(const char *block, const char *va inline void LLTemplateMessageReader::getString(const char *block, const char *var, std::string& outstr, S32 blocknum ) { - char s[MTUBYTES]; - s[0] = '\0'; + char s[MTUBYTES + 1]= {0}; // every element is initialized with 0 getData(block, var, s, 0, blocknum, MTUBYTES); - s[MTUBYTES - 1] = '\0'; + s[MTUBYTES] = '\0'; outstr = s; } -- cgit v1.2.3