mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-12 14:02:26 +00:00
Changed OP_FormattedMessage code to eliminate possible oob error
This commit is contained in:
parent
a6148565e5
commit
e84cebe375
@ -877,26 +877,27 @@ namespace RoF
|
|||||||
|
|
||||||
unsigned char *__emu_buffer = in->pBuffer;
|
unsigned char *__emu_buffer = in->pBuffer;
|
||||||
|
|
||||||
|
char *old_message_ptr = (char *)in->pBuffer;
|
||||||
|
old_message_ptr += sizeof(FormattedMessage_Struct);
|
||||||
|
|
||||||
std::string old_message_array[9];
|
std::string old_message_array[9];
|
||||||
|
|
||||||
char *old_message_ptr = (char *)__emu_buffer + sizeof(FormattedMessage_Struct);
|
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
if (*old_message_ptr == 0) { break; }
|
||||||
old_message_array[i] = old_message_ptr;
|
old_message_array[i] = old_message_ptr;
|
||||||
old_message_ptr += old_message_array[i].length() + 1;
|
old_message_ptr += old_message_array[i].length() + 1;
|
||||||
if (old_message_array[i].length() == 0) { break; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 new_message_size = 0;
|
uint32 new_message_size = 0;
|
||||||
std::string new_message_array[9];
|
std::string new_message_array[9];
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
ServerToRoFTextLink(new_message_array[i], old_message_array[i]);
|
|
||||||
new_message_size += (new_message_array[i].length() + 1);
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
ServerToRoFTextLink(new_message_array[i], old_message_array[i]);
|
||||||
|
new_message_size += new_message_array[i].length() + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
in->size = sizeof(FormattedMessage_Struct) + new_message_size;
|
in->size = sizeof(FormattedMessage_Struct) + new_message_size + 1;
|
||||||
in->pBuffer = new unsigned char[in->size];
|
in->pBuffer = new unsigned char[in->size];
|
||||||
|
|
||||||
char *OutBuffer = (char *)in->pBuffer;
|
char *OutBuffer = (char *)in->pBuffer;
|
||||||
@ -906,10 +907,12 @@ namespace RoF
|
|||||||
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VARSTRUCT_ENCODE_TYPE(uint8, OutBuffer, 0);
|
||||||
|
|
||||||
delete[] __emu_buffer;
|
delete[] __emu_buffer;
|
||||||
dest->FastQueuePacket(&in, ack_req);
|
dest->FastQueuePacket(&in, ack_req);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -943,26 +943,27 @@ namespace RoF2
|
|||||||
|
|
||||||
unsigned char *__emu_buffer = in->pBuffer;
|
unsigned char *__emu_buffer = in->pBuffer;
|
||||||
|
|
||||||
|
char *old_message_ptr = (char *)in->pBuffer;
|
||||||
|
old_message_ptr += sizeof(FormattedMessage_Struct);
|
||||||
|
|
||||||
std::string old_message_array[9];
|
std::string old_message_array[9];
|
||||||
|
|
||||||
char *old_message_ptr = (char *)__emu_buffer + sizeof(FormattedMessage_Struct);
|
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
if (*old_message_ptr == 0) { break; }
|
||||||
old_message_array[i] = old_message_ptr;
|
old_message_array[i] = old_message_ptr;
|
||||||
old_message_ptr += old_message_array[i].length() + 1;
|
old_message_ptr += old_message_array[i].length() + 1;
|
||||||
if (old_message_array[i].length() == 0) { break; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 new_message_size = 0;
|
uint32 new_message_size = 0;
|
||||||
std::string new_message_array[9];
|
std::string new_message_array[9];
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
ServerToRoF2TextLink(new_message_array[i], old_message_array[i]);
|
|
||||||
new_message_size += (new_message_array[i].length() + 1);
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
ServerToRoF2TextLink(new_message_array[i], old_message_array[i]);
|
||||||
|
new_message_size += new_message_array[i].length() + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
in->size = sizeof(FormattedMessage_Struct) + new_message_size;
|
in->size = sizeof(FormattedMessage_Struct) + new_message_size + 1;
|
||||||
in->pBuffer = new unsigned char[in->size];
|
in->pBuffer = new unsigned char[in->size];
|
||||||
|
|
||||||
char *OutBuffer = (char *)in->pBuffer;
|
char *OutBuffer = (char *)in->pBuffer;
|
||||||
@ -972,10 +973,12 @@ namespace RoF2
|
|||||||
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VARSTRUCT_ENCODE_TYPE(uint8, OutBuffer, 0);
|
||||||
|
|
||||||
delete[] __emu_buffer;
|
delete[] __emu_buffer;
|
||||||
dest->FastQueuePacket(&in, ack_req);
|
dest->FastQueuePacket(&in, ack_req);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -646,26 +646,27 @@ namespace SoD
|
|||||||
|
|
||||||
unsigned char *__emu_buffer = in->pBuffer;
|
unsigned char *__emu_buffer = in->pBuffer;
|
||||||
|
|
||||||
|
char *old_message_ptr = (char *)in->pBuffer;
|
||||||
|
old_message_ptr += sizeof(FormattedMessage_Struct);
|
||||||
|
|
||||||
std::string old_message_array[9];
|
std::string old_message_array[9];
|
||||||
|
|
||||||
char *old_message_ptr = (char *)__emu_buffer + sizeof(FormattedMessage_Struct);
|
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
if (*old_message_ptr == 0) { break; }
|
||||||
old_message_array[i] = old_message_ptr;
|
old_message_array[i] = old_message_ptr;
|
||||||
old_message_ptr += old_message_array[i].length() + 1;
|
old_message_ptr += old_message_array[i].length() + 1;
|
||||||
if (old_message_array[i].length() == 0) { break; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 new_message_size = 0;
|
uint32 new_message_size = 0;
|
||||||
std::string new_message_array[9];
|
std::string new_message_array[9];
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
ServerToSoDTextLink(new_message_array[i], old_message_array[i]);
|
|
||||||
new_message_size += (new_message_array[i].length() + 1);
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
ServerToSoDTextLink(new_message_array[i], old_message_array[i]);
|
||||||
|
new_message_size += new_message_array[i].length() + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
in->size = sizeof(FormattedMessage_Struct) + new_message_size;
|
in->size = sizeof(FormattedMessage_Struct) + new_message_size + 1;
|
||||||
in->pBuffer = new unsigned char[in->size];
|
in->pBuffer = new unsigned char[in->size];
|
||||||
|
|
||||||
char *OutBuffer = (char *)in->pBuffer;
|
char *OutBuffer = (char *)in->pBuffer;
|
||||||
@ -675,10 +676,12 @@ namespace SoD
|
|||||||
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VARSTRUCT_ENCODE_TYPE(uint8, OutBuffer, 0);
|
||||||
|
|
||||||
delete[] __emu_buffer;
|
delete[] __emu_buffer;
|
||||||
dest->FastQueuePacket(&in, ack_req);
|
dest->FastQueuePacket(&in, ack_req);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -633,26 +633,27 @@ namespace SoF
|
|||||||
|
|
||||||
unsigned char *__emu_buffer = in->pBuffer;
|
unsigned char *__emu_buffer = in->pBuffer;
|
||||||
|
|
||||||
|
char *old_message_ptr = (char *)in->pBuffer;
|
||||||
|
old_message_ptr += sizeof(FormattedMessage_Struct);
|
||||||
|
|
||||||
std::string old_message_array[9];
|
std::string old_message_array[9];
|
||||||
|
|
||||||
char *old_message_ptr = (char *)__emu_buffer + sizeof(FormattedMessage_Struct);
|
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
if (*old_message_ptr == 0) { break; }
|
||||||
old_message_array[i] = old_message_ptr;
|
old_message_array[i] = old_message_ptr;
|
||||||
old_message_ptr += old_message_array[i].length() + 1;
|
old_message_ptr += old_message_array[i].length() + 1;
|
||||||
if (old_message_array[i].length() == 0) { break; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 new_message_size = 0;
|
uint32 new_message_size = 0;
|
||||||
std::string new_message_array[9];
|
std::string new_message_array[9];
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
ServerToSoFTextLink(new_message_array[i], old_message_array[i]);
|
|
||||||
new_message_size += (new_message_array[i].length() + 1);
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
ServerToSoFTextLink(new_message_array[i], old_message_array[i]);
|
||||||
|
new_message_size += new_message_array[i].length() + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
in->size = sizeof(FormattedMessage_Struct) + new_message_size;
|
in->size = sizeof(FormattedMessage_Struct) + new_message_size + 1;
|
||||||
in->pBuffer = new unsigned char[in->size];
|
in->pBuffer = new unsigned char[in->size];
|
||||||
|
|
||||||
char *OutBuffer = (char *)in->pBuffer;
|
char *OutBuffer = (char *)in->pBuffer;
|
||||||
@ -662,10 +663,12 @@ namespace SoF
|
|||||||
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VARSTRUCT_ENCODE_TYPE(uint8, OutBuffer, 0);
|
||||||
|
|
||||||
delete[] __emu_buffer;
|
delete[] __emu_buffer;
|
||||||
dest->FastQueuePacket(&in, ack_req);
|
dest->FastQueuePacket(&in, ack_req);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -492,26 +492,27 @@ namespace Titanium
|
|||||||
|
|
||||||
unsigned char *__emu_buffer = in->pBuffer;
|
unsigned char *__emu_buffer = in->pBuffer;
|
||||||
|
|
||||||
|
char *old_message_ptr = (char *)in->pBuffer;
|
||||||
|
old_message_ptr += sizeof(FormattedMessage_Struct);
|
||||||
|
|
||||||
std::string old_message_array[9];
|
std::string old_message_array[9];
|
||||||
|
|
||||||
char *old_message_ptr = (char *)__emu_buffer + sizeof(FormattedMessage_Struct);
|
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
if (*old_message_ptr == 0) { break; }
|
||||||
old_message_array[i] = old_message_ptr;
|
old_message_array[i] = old_message_ptr;
|
||||||
old_message_ptr += old_message_array[i].length() + 1;
|
old_message_ptr += old_message_array[i].length() + 1;
|
||||||
if (old_message_array[i].length() == 0) { break; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 new_message_size = 0;
|
uint32 new_message_size = 0;
|
||||||
std::string new_message_array[9];
|
std::string new_message_array[9];
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
ServerToTitaniumTextLink(new_message_array[i], old_message_array[i]);
|
|
||||||
new_message_size += (new_message_array[i].length() + 1);
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
ServerToTitaniumTextLink(new_message_array[i], old_message_array[i]);
|
||||||
|
new_message_size += new_message_array[i].length() + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
in->size = sizeof(FormattedMessage_Struct) + new_message_size;
|
in->size = sizeof(FormattedMessage_Struct) + new_message_size + 1;
|
||||||
in->pBuffer = new unsigned char[in->size];
|
in->pBuffer = new unsigned char[in->size];
|
||||||
|
|
||||||
char *OutBuffer = (char *)in->pBuffer;
|
char *OutBuffer = (char *)in->pBuffer;
|
||||||
@ -521,10 +522,12 @@ namespace Titanium
|
|||||||
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VARSTRUCT_ENCODE_TYPE(uint8, OutBuffer, 0);
|
||||||
|
|
||||||
delete[] __emu_buffer;
|
delete[] __emu_buffer;
|
||||||
dest->FastQueuePacket(&in, ack_req);
|
dest->FastQueuePacket(&in, ack_req);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -790,26 +790,27 @@ namespace Underfoot
|
|||||||
|
|
||||||
unsigned char *__emu_buffer = in->pBuffer;
|
unsigned char *__emu_buffer = in->pBuffer;
|
||||||
|
|
||||||
|
char *old_message_ptr = (char *)in->pBuffer;
|
||||||
|
old_message_ptr += sizeof(FormattedMessage_Struct);
|
||||||
|
|
||||||
std::string old_message_array[9];
|
std::string old_message_array[9];
|
||||||
|
|
||||||
char *old_message_ptr = (char *)__emu_buffer + sizeof(FormattedMessage_Struct);
|
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
if (*old_message_ptr == 0) { break; }
|
||||||
old_message_array[i] = old_message_ptr;
|
old_message_array[i] = old_message_ptr;
|
||||||
old_message_ptr += old_message_array[i].length() + 1;
|
old_message_ptr += old_message_array[i].length() + 1;
|
||||||
if (old_message_array[i].length() == 0) { break; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 new_message_size = 0;
|
uint32 new_message_size = 0;
|
||||||
std::string new_message_array[9];
|
std::string new_message_array[9];
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
ServerToUnderfootTextLink(new_message_array[i], old_message_array[i]);
|
|
||||||
new_message_size += (new_message_array[i].length() + 1);
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
ServerToUnderfootTextLink(new_message_array[i], old_message_array[i]);
|
||||||
|
new_message_size += new_message_array[i].length() + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
in->size = sizeof(FormattedMessage_Struct) + new_message_size;
|
in->size = sizeof(FormattedMessage_Struct) + new_message_size + 1;
|
||||||
in->pBuffer = new unsigned char[in->size];
|
in->pBuffer = new unsigned char[in->size];
|
||||||
|
|
||||||
char *OutBuffer = (char *)in->pBuffer;
|
char *OutBuffer = (char *)in->pBuffer;
|
||||||
@ -819,10 +820,12 @@ namespace Underfoot
|
|||||||
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
VARSTRUCT_ENCODE_TYPE(uint32, OutBuffer, emu->type);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
|
||||||
if (new_message_array[i].length() == 0) { break; }
|
if (new_message_array[i].length() == 0) { break; }
|
||||||
|
VARSTRUCT_ENCODE_STRING(OutBuffer, new_message_array[i].c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VARSTRUCT_ENCODE_TYPE(uint8, OutBuffer, 0);
|
||||||
|
|
||||||
delete[] __emu_buffer;
|
delete[] __emu_buffer;
|
||||||
dest->FastQueuePacket(&in, ack_req);
|
dest->FastQueuePacket(&in, ack_req);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2814,7 +2814,7 @@ void Client::Message_StringID(uint32 type, uint32 string_id, const char* message
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
int i = 0, argcount = 0, length = 0;
|
int i = 0, argcount = 0, length = 0;
|
||||||
char *bufptr;
|
char *bufptr = nullptr;
|
||||||
const char *message_arg[9] = {0};
|
const char *message_arg[9] = {0};
|
||||||
|
|
||||||
if(type==MT_Emote)
|
if(type==MT_Emote)
|
||||||
@ -2839,8 +2839,7 @@ void Client::Message_StringID(uint32 type, uint32 string_id, const char* message
|
|||||||
for(; message_arg[argcount]; ++argcount)
|
for(; message_arg[argcount]; ++argcount)
|
||||||
length += strlen(message_arg[argcount]) + 1;
|
length += strlen(message_arg[argcount]) + 1;
|
||||||
|
|
||||||
if (length == 0)
|
length += 1;
|
||||||
length = 1;
|
|
||||||
|
|
||||||
EQApplicationPacket* outapp = new EQApplicationPacket(OP_FormattedMessage, sizeof(FormattedMessage_Struct) + length);
|
EQApplicationPacket* outapp = new EQApplicationPacket(OP_FormattedMessage, sizeof(FormattedMessage_Struct) + length);
|
||||||
FormattedMessage_Struct *fm = (FormattedMessage_Struct *)outapp->pBuffer;
|
FormattedMessage_Struct *fm = (FormattedMessage_Struct *)outapp->pBuffer;
|
||||||
@ -2853,8 +2852,7 @@ void Client::Message_StringID(uint32 type, uint32 string_id, const char* message
|
|||||||
bufptr += strlen(message_arg[i]) + 1;
|
bufptr += strlen(message_arg[i]) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argcount == 0)
|
bufptr = '\0';
|
||||||
bufptr = '\0';
|
|
||||||
|
|
||||||
if(distance>0)
|
if(distance>0)
|
||||||
entity_list.QueueCloseClients(this,outapp,false,distance);
|
entity_list.QueueCloseClients(this,outapp,false,distance);
|
||||||
@ -2930,7 +2928,7 @@ void Client::FilteredMessage_StringID(Mob *sender, uint32 type, eqFilterType fil
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
int i = 0, argcount = 0, length = 0;
|
int i = 0, argcount = 0, length = 0;
|
||||||
char *bufptr;
|
char *bufptr = nullptr;
|
||||||
const char *message_arg[9] = {0};
|
const char *message_arg[9] = {0};
|
||||||
|
|
||||||
if (type == MT_Emote)
|
if (type == MT_Emote)
|
||||||
@ -2954,8 +2952,7 @@ void Client::FilteredMessage_StringID(Mob *sender, uint32 type, eqFilterType fil
|
|||||||
for (; message_arg[argcount]; ++argcount)
|
for (; message_arg[argcount]; ++argcount)
|
||||||
length += strlen(message_arg[argcount]) + 1;
|
length += strlen(message_arg[argcount]) + 1;
|
||||||
|
|
||||||
if (length == 0)
|
length += 1;
|
||||||
length = 1;
|
|
||||||
|
|
||||||
EQApplicationPacket *outapp = new EQApplicationPacket(OP_FormattedMessage, sizeof(FormattedMessage_Struct) + length);
|
EQApplicationPacket *outapp = new EQApplicationPacket(OP_FormattedMessage, sizeof(FormattedMessage_Struct) + length);
|
||||||
FormattedMessage_Struct *fm = (FormattedMessage_Struct *)outapp->pBuffer;
|
FormattedMessage_Struct *fm = (FormattedMessage_Struct *)outapp->pBuffer;
|
||||||
@ -2967,8 +2964,7 @@ void Client::FilteredMessage_StringID(Mob *sender, uint32 type, eqFilterType fil
|
|||||||
bufptr += strlen(message_arg[i]) + 1;
|
bufptr += strlen(message_arg[i]) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argcount == 0)
|
bufptr = '\0';
|
||||||
bufptr = '\0';
|
|
||||||
|
|
||||||
QueuePacket(outapp);
|
QueuePacket(outapp);
|
||||||
safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user