Mirror von
https://github.com/PaperMC/Velocity.git
synchronisiert 2024-11-16 21:10:30 +01:00
Do not use an ASCII string for handshake
Dieser Commit ist enthalten in:
Ursprung
f88283f127
Commit
514115a85c
@ -97,24 +97,6 @@ public enum ProtocolUtils {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads a VarInt length-prefixed ASCII string from the {@code buf}, making sure to not go over
|
||||
* {@code cap} size. This method is specialized for select parts of the Minecraft protocol where
|
||||
* ASCII characters are guaranteed to be used.
|
||||
*
|
||||
* @param buf the buffer to read from
|
||||
* @param cap the maximum size of the string, in UTF-8 character length
|
||||
* @return the decoded string
|
||||
*/
|
||||
public static String readAsciiString(ByteBuf buf, int cap) {
|
||||
int length = readVarInt(buf);
|
||||
checkFrame(length >= 0, "Got a negative-length string (%s)", length);
|
||||
checkFrame(length <= cap, "Bad string size (got %s, maximum is %s)", length, cap);
|
||||
String str = buf.toString(buf.readerIndex(), length, StandardCharsets.US_ASCII);
|
||||
buf.skipBytes(length);
|
||||
return str;
|
||||
}
|
||||
|
||||
public static String readString(ByteBuf buf) {
|
||||
return readString(buf, DEFAULT_MAX_STRING_SIZE);
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ public class Handshake implements MinecraftPacket {
|
||||
public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion ignored) {
|
||||
int realProtocolVersion = ProtocolUtils.readVarInt(buf);
|
||||
this.protocolVersion = ProtocolVersion.getProtocolVersion(realProtocolVersion);
|
||||
this.serverAddress = ProtocolUtils.readAsciiString(buf, MAXIMUM_HOSTNAME_LENGTH);
|
||||
this.serverAddress = ProtocolUtils.readString(buf, MAXIMUM_HOSTNAME_LENGTH);
|
||||
this.port = buf.readUnsignedShort();
|
||||
this.nextStatus = ProtocolUtils.readVarInt(buf);
|
||||
}
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren