From 61d2caee9f9474a6ccb6c13a4727e3527bd7c938 Mon Sep 17 00:00:00 2001
From: Vadim Savchuk <vsavchuk@productengine.com>
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 ++---
 indra/newview/skins/default/xui/en/panel_edit_profile.xml | 4 ++--
 3 files changed, 5 insertions(+), 6 deletions(-)

(limited to 'indra')

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;
 }
 
diff --git a/indra/newview/skins/default/xui/en/panel_edit_profile.xml b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
index 26be8440e7..dff2b9a214 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
@@ -146,7 +146,7 @@
        layout="topleft"
        left="123"
        top="25"
-       max_length="512"
+       max_length="511"
        name="sl_description_edit"
        width="157"
        word_wrap="true">
@@ -200,7 +200,7 @@
        height="102"
        layout="topleft"
        left="123"
-       max_length="512"
+       max_length="254"
        top="157"
        name="fl_description_edit"
        width="157"
-- 
cgit v1.2.3