Protect against variable size packets potentially being larger than the defined MTU. Found by David Daeschler at InWorldz.

This commit is contained in:
Cinder
2015-08-14 12:03:46 -06:00
parent db89712cca
commit 8229fcdf08
2 changed files with 167 additions and 167 deletions

View File

@@ -847,7 +847,7 @@ namespace mapgenerator
writer.WriteLine(" i = " + sanitizedName + "Start;");
writer.WriteLine(" while (fixedLength + variableLength + acksLength < Packet.MTU && i < " + sanitizedName + ".Length) {");
writer.WriteLine(" int blockLength = " + sanitizedName + "[i].Length;");
writer.WriteLine(" if (fixedLength + variableLength + blockLength + acksLength <= MTU) {");
writer.WriteLine(" if (fixedLength + variableLength + blockLength + acksLength <= MTU || i == " + sanitizedName + "Start) {");
writer.WriteLine(" variableLength += blockLength;");
writer.WriteLine(" ++" + sanitizedName + "Count;");
writer.WriteLine(" }");