Skip to content

Commit

Permalink
+ truncate string when reading '\0' char
Browse files Browse the repository at this point in the history
  • Loading branch information
andreakarasho committed Mar 2, 2020
1 parent f14a7d0 commit 213de52
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions src/Network/PacketHandlers.cs
Expand Up @@ -2907,7 +2907,15 @@ private static void OpenGump(Packet p)
for (int i = 0, index = p.Position; i < textLinesCount; i++)
{
int length = ((buffer[index++] << 8) | buffer[index++]) << 1;
lines[i] = Encoding.BigEndianUnicode.GetString(buffer, index, length);
int true_length = 0;

while (true_length < length)
{
if (((buffer[true_length++] << 8) | buffer[true_length++]) << 1 == '\0')
break;
}

lines[i] = Encoding.BigEndianUnicode.GetString(buffer, index, true_length);
index += length;
}

Expand Down Expand Up @@ -4048,7 +4056,17 @@ private static void OpenCompressedGump(Packet p)
for (int i = 0, index = 0; i < linesNum; i++)
{
int length = ((decData[index++] << 8) | decData[index++]) << 1;
lines[i] = Encoding.BigEndianUnicode.GetString(decData, index, length);

int true_length = 0;

while (true_length < length)
{
if (((decData[true_length++] << 8) | decData[true_length++]) << 1 == '\0')
break;
}

lines[i] = Encoding.BigEndianUnicode.GetString(decData, index, true_length);

index += length;
}
}
Expand Down

0 comments on commit 213de52

Please sign in to comment.