Fix CreateAccountCodec padding

The padding must be between 1 and 8 bytes inclusive, not 0 and 7.

Signed-off-by: Graham <gpe@openrs2.org>
Graham 2 years ago
parent 76e7e93f3c
commit 2abd1d7ea0
  1. 11
      protocol/src/main/kotlin/org/openrs2/protocol/login/upstream/CreateAccountCodec.kt

@ -59,8 +59,12 @@ public class CreateAccountCodec @Inject constructor(
val email = input.readString()
// padding
input.skipBytes(minOf(input.readableBytes(), XTEA_BLOCK_SIZE - 1))
val padding = input.readableBytes()
require(padding in 1..XTEA_BLOCK_SIZE) {
"Padding ($padding bytes) must be between 1 and $XTEA_BLOCK_SIZE bytes"
}
input.skipBytes(padding)
return LoginRequest.CreateAccount(
build,
@ -121,7 +125,8 @@ public class CreateAccountCodec @Inject constructor(
output.writeString(input.email)
while ((output.writerIndex() - xteaIndex) % XTEA_BLOCK_SIZE != 0) {
val padding = XTEA_BLOCK_SIZE - (output.writerIndex() - xteaIndex) % XTEA_BLOCK_SIZE
for (i in 0 until padding) {
output.writeByte(secureRandom.nextInt())
}

Loading…
Cancel
Save