SL-14766 long unicode display names corrupt the conversation.log
Contribution by Beq Janusmaster
parent
0e4faf7d9c
commit
a3d31ca683
|
|
@ -264,10 +264,10 @@ Benja Kepler
|
|||
Benjamin Bigdipper
|
||||
Beq Janus
|
||||
BUG-227094
|
||||
Beth Walcher
|
||||
Beq Janus
|
||||
SL-10288
|
||||
SL-13583
|
||||
SL-14766
|
||||
Beth Walcher
|
||||
Bezilon Kasei
|
||||
Biancaluce Robbiani
|
||||
CT-225
|
||||
|
|
|
|||
|
|
@ -535,7 +535,9 @@ bool LLConversationLog::loadFromFile(const std::string& filename)
|
|||
}
|
||||
bool purge_required = false;
|
||||
|
||||
char buffer[MAX_STRING];
|
||||
static constexpr int UTF_BUFFER{ 1024 }; // long enough to handle the most extreme Unicode nonsense and some to spare
|
||||
|
||||
char buffer[UTF_BUFFER];
|
||||
char conv_name_buffer[MAX_STRING];
|
||||
char part_id_buffer[MAX_STRING];
|
||||
char conv_id_buffer[MAX_STRING];
|
||||
|
|
@ -546,11 +548,14 @@ bool LLConversationLog::loadFromFile(const std::string& filename)
|
|||
// before CHUI-348 it was a flag of conversation voice state
|
||||
int prereserved_unused;
|
||||
|
||||
while (!feof(fp) && fgets(buffer, MAX_STRING, fp))
|
||||
memset(buffer, '\0', UTF_BUFFER);
|
||||
while (!feof(fp) && fgets(buffer, UTF_BUFFER, fp))
|
||||
{
|
||||
conv_name_buffer[0] = '\0';
|
||||
part_id_buffer[0] = '\0';
|
||||
conv_id_buffer[0] = '\0';
|
||||
// force blank for added safety
|
||||
memset(conv_name_buffer, '\0', MAX_STRING);
|
||||
memset(part_id_buffer, '\0', MAX_STRING);
|
||||
memset(conv_id_buffer, '\0', MAX_STRING);
|
||||
memset(history_file_name, '\0', MAX_STRING);
|
||||
|
||||
sscanf(buffer, "[%lld] %d %d %d %[^|]| %s %s %[^|]|",
|
||||
&time,
|
||||
|
|
@ -587,6 +592,7 @@ bool LLConversationLog::loadFromFile(const std::string& filename)
|
|||
}
|
||||
|
||||
mConversations.push_back(conversation);
|
||||
memset(buffer, '\0', UTF_BUFFER);
|
||||
}
|
||||
fclose(fp);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue