Localize the buffer for less error possibility of heap corruption, messed with messagelog buffers
too... commented changes.
This commit is contained in:
@@ -20,7 +20,11 @@ LLMessageLogEntry::LLMessageLogEntry(EType type, LLHost from_host, LLHost to_hos
|
|||||||
LLMessageLogEntry::~LLMessageLogEntry()
|
LLMessageLogEntry::~LLMessageLogEntry()
|
||||||
{
|
{
|
||||||
// wtf, I'm not supposed to do this?
|
// wtf, I'm not supposed to do this?
|
||||||
//if(mData && mDataSize) delete[] mData;
|
/*if(mData && mDataSize)
|
||||||
|
{
|
||||||
|
delete[] mData;
|
||||||
|
mData = NULL;
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
U32 LLMessageLog::sMaxSize = 4096; // testzone fixme todo boom
|
U32 LLMessageLog::sMaxSize = 4096; // testzone fixme todo boom
|
||||||
std::deque<LLMessageLogEntry> LLMessageLog::sDeque;
|
std::deque<LLMessageLogEntry> LLMessageLog::sDeque;
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ LLNetListItem::LLNetListItem(LLUUID id)
|
|||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
// LLFloaterMessageLogItem
|
// LLFloaterMessageLogItem
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
U8 LLFloaterMessageLogItem::sDecodeBuffer[8192];
|
#define MAX_PACKET_LEN (0x2000)
|
||||||
LLTemplateMessageReader* LLFloaterMessageLogItem::sTemplateMessageReader = NULL;
|
LLTemplateMessageReader* LLFloaterMessageLogItem::sTemplateMessageReader = NULL;
|
||||||
LLFloaterMessageLogItem::LLFloaterMessageLogItem(LLMessageLogEntry entry)
|
LLFloaterMessageLogItem::LLFloaterMessageLogItem(LLMessageLogEntry entry)
|
||||||
: LLMessageLogEntry(entry.mType, entry.mFromHost, entry.mToHost, entry.mData, entry.mDataSize)
|
: LLMessageLogEntry(entry.mType, entry.mFromHost, entry.mToHost, entry.mData, entry.mDataSize)
|
||||||
@@ -41,9 +41,10 @@ LLFloaterMessageLogItem::LLFloaterMessageLogItem(LLMessageLogEntry entry)
|
|||||||
{
|
{
|
||||||
BOOL decode_invalid = FALSE;
|
BOOL decode_invalid = FALSE;
|
||||||
S32 decode_len = mDataSize;
|
S32 decode_len = mDataSize;
|
||||||
memcpy(sDecodeBuffer, mData, decode_len);
|
U8 DecodeBuffer[MAX_PACKET_LEN];
|
||||||
mFlags = sDecodeBuffer[0];
|
memcpy(DecodeBuffer, mData, decode_len);
|
||||||
U8* decodep = &(sDecodeBuffer[0]);
|
mFlags = DecodeBuffer[0];
|
||||||
|
U8* decodep = &(DecodeBuffer[0]);
|
||||||
gMessageSystem->zeroCodeExpand(&decodep, &decode_len);
|
gMessageSystem->zeroCodeExpand(&decodep, &decode_len);
|
||||||
if(decode_len < 7)
|
if(decode_len < 7)
|
||||||
decode_invalid = TRUE;
|
decode_invalid = TRUE;
|
||||||
@@ -120,8 +121,6 @@ LLFloaterMessageLogItem::LLFloaterMessageLogItem(LLMessageLogEntry entry)
|
|||||||
for(S32 i = 0; i < mDataSize; i++)
|
for(S32 i = 0; i < mDataSize; i++)
|
||||||
mSummary.append(llformat("%02X ", mData[i]));
|
mSummary.append(llformat("%02X ", mData[i]));
|
||||||
}
|
}
|
||||||
//lets play cleanup
|
|
||||||
memset(sDecodeBuffer, 0, mDataSize);
|
|
||||||
}
|
}
|
||||||
else // not template
|
else // not template
|
||||||
{
|
{
|
||||||
@@ -143,8 +142,9 @@ std::string LLFloaterMessageLogItem::getFull(BOOL show_header)
|
|||||||
{
|
{
|
||||||
BOOL decode_invalid = FALSE;
|
BOOL decode_invalid = FALSE;
|
||||||
S32 decode_len = mDataSize;
|
S32 decode_len = mDataSize;
|
||||||
memcpy(sDecodeBuffer, mData, decode_len);
|
U8 DecodeBuffer[MAX_PACKET_LEN];
|
||||||
U8* decodep = &(sDecodeBuffer[0]);
|
memcpy(DecodeBuffer, mData, decode_len);
|
||||||
|
U8* decodep = &(DecodeBuffer[0]);
|
||||||
gMessageSystem->zeroCodeExpand(&decodep, &decode_len);
|
gMessageSystem->zeroCodeExpand(&decodep, &decode_len);
|
||||||
if(decode_len < 7)
|
if(decode_len < 7)
|
||||||
decode_invalid = TRUE;
|
decode_invalid = TRUE;
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ public:
|
|||||||
std::string getFull(BOOL show_header = TRUE);
|
std::string getFull(BOOL show_header = TRUE);
|
||||||
BOOL isOutgoing();
|
BOOL isOutgoing();
|
||||||
private:
|
private:
|
||||||
static U8 sDecodeBuffer[8192];
|
|
||||||
static LLTemplateMessageReader* sTemplateMessageReader;
|
static LLTemplateMessageReader* sTemplateMessageReader;
|
||||||
static std::string getString(LLTemplateMessageReader* readerp, const char* block_name, S32 block_num, const char* var_name, e_message_variable_type var_type, BOOL &returned_hex, BOOL summary_mode = FALSE);
|
static std::string getString(LLTemplateMessageReader* readerp, const char* block_name, S32 block_num, const char* var_name, e_message_variable_type var_type, BOOL &returned_hex, BOOL summary_mode = FALSE);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user