13
0
geforkt von Mirrors/Velocity

clear input buffer in case of bad varints

Dieser Commit ist enthalten in:
Andrew Steinborn 2021-03-30 12:05:43 -04:00
Ursprung 0cc300b621
Commit 8aad6e2ece

Datei anzeigen

@ -34,6 +34,7 @@ public class MinecraftVarintFrameDecoder extends ByteToMessageDecoder {
int readVarint = reader.getReadVarint(); int readVarint = reader.getReadVarint();
int bytesRead = reader.getBytesRead(); int bytesRead = reader.getBytesRead();
if (readVarint < 0) { if (readVarint < 0) {
in.clear();
throw BAD_LENGTH_CACHED; throw BAD_LENGTH_CACHED;
} else if (readVarint == 0) { } else if (readVarint == 0) {
// skip over the empty packet and ignore it // skip over the empty packet and ignore it
@ -46,6 +47,7 @@ public class MinecraftVarintFrameDecoder extends ByteToMessageDecoder {
} }
} }
} else if (reader.getResult() == DecodeResult.TOO_BIG) { } else if (reader.getResult() == DecodeResult.TOO_BIG) {
in.clear();
throw VARINT_BIG_CACHED; throw VARINT_BIG_CACHED;
} }
} }