diff options
author | MaximB ProductEngine <mberezhnoy@productengine.com> | 2013-12-12 07:24:13 +0200 |
---|---|---|
committer | MaximB ProductEngine <mberezhnoy@productengine.com> | 2013-12-12 07:24:13 +0200 |
commit | 2a1098552e071c625a8c1614a331e9557212d380 (patch) | |
tree | 1283cd746e6a1b0d0ffc214e8cc6863f1202c226 /indra/llmessage | |
parent | 06d66598459d0b362bdba663af09af0a893c2abe (diff) |
MAINT-3541 (crash in std::vector >::reserve)
Diffstat (limited to 'indra/llmessage')
-rwxr-xr-x | indra/llmessage/lltemplatemessagereader.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/indra/llmessage/lltemplatemessagereader.cpp b/indra/llmessage/lltemplatemessagereader.cpp index ab91f74abe..94bc7cb045 100755 --- a/indra/llmessage/lltemplatemessagereader.cpp +++ b/indra/llmessage/lltemplatemessagereader.cpp @@ -91,15 +91,17 @@ void LLTemplateMessageReader::getData(const char *blockname, const char *varname } LLMsgBlkData *msg_block_data = iter->second; - LLMsgVarData& vardata = msg_block_data->mMemberVarData[vnamep]; + LLMsgBlkData::msg_var_data_map_t &var_data_map = msg_block_data->mMemberVarData; - if (!vardata.getName()) + if (var_data_map.find(vnamep) == var_data_map.end()) { llerrs << "Variable "<< vnamep << " not in message " << mCurrentRMessageData->mName<< " block " << bnamep << llendl; return; } + LLMsgVarData& vardata = msg_block_data->mMemberVarData[vnamep]; + if (size && size != vardata.getSize()) { llerrs << "Msg " << mCurrentRMessageData->mName |