diff --git a/src/main/java/icu/samnyan/aqua/sega/aimedb/AimeDB.kt b/src/main/java/icu/samnyan/aqua/sega/aimedb/AimeDB.kt index 330325c3..a24dc034 100644 --- a/src/main/java/icu/samnyan/aqua/sega/aimedb/AimeDB.kt +++ b/src/main/java/icu/samnyan/aqua/sega/aimedb/AimeDB.kt @@ -46,7 +46,7 @@ class AimeDB( keychipId = readPaddedString(12u) // 14 12b ) - fun ByteBuf.readPaddedString(maxLen: UInt) = readCharSequence(maxLen.toInt(), US_ASCII).toString().trimEnd('\u0000') + fun ByteBuf.readPaddedString(maxLen: UInt) = readBytes(maxLen.toInt()).toString(US_ASCII).trimEnd('\u0000') data class Handler(val name: String, val fn: (ByteBuf) -> ByteBuf?) diff --git a/src/main/java/icu/samnyan/aqua/sega/aimedb/AimeDbDecoder.kt b/src/main/java/icu/samnyan/aqua/sega/aimedb/AimeDbDecoder.kt index 7f56bdc6..fa3ccb6e 100644 --- a/src/main/java/icu/samnyan/aqua/sega/aimedb/AimeDbDecoder.kt +++ b/src/main/java/icu/samnyan/aqua/sega/aimedb/AimeDbDecoder.kt @@ -28,11 +28,8 @@ class AimeDbDecoder : ByteToMessageDecoder() { // Create a byte array to store the encrypted data val d = input.readBytes(length) - val result = try { - AimeDbEncryption.decrypt(d) - } finally { - d.release() - } + val result = AimeDbEncryption.decrypt(d) + d.release() val resultMap = mapOf( "type" to result.getShortLE(0x04).toInt(), @@ -53,16 +50,13 @@ class AimeDbDecoder : ByteToMessageDecoder() { private fun getLength(input: ByteBuf): Int = try { val currentPos = input.readerIndex() val result = AimeDbEncryption.decrypt(input) - try { - // Check the header - val header = result.getByte(0).toInt() - assert(header == 0x3e) { "AimeDB: Invalid header $header" } - // Read the length from offset 6 - result.getShortLE(currentPos + 6).toInt() - } finally { - result.release() - } + // Check the header + val header = result.getByte(0).toInt() + assert(header == 0x3e) { "AimeDB: Invalid header $header" } + + // Read the length from offset 6 + result.getShortLE(currentPos + 6).toInt() } catch (e: Exception) { logger.info("AimeDB: Invalid request received") logger.debug("AimeDB: Invalid request received: ${input.toString(Charsets.UTF_8)}")