Fix potential memory leak on login

This commit is contained in:
Him188 2020-12-31 23:49:12 +08:00
parent 68729cdcba
commit 31a5957509

View File

@ -373,7 +373,7 @@ internal class WtLogin {
}
private fun onUnsafeDeviceLogin(tlvMap: TlvMap): LoginPacketResponse.UnsafeLogin {
return LoginPacketResponse.UnsafeLogin(tlvMap.getOrFail(0x204).toReadPacket().readBytes().encodeToString())
return LoginPacketResponse.UnsafeLogin(tlvMap.getOrFail(0x204).encodeToString())
}
private fun onErrorMessage(tlvMap: TlvMap): LoginPacketResponse.Error? {
@ -416,15 +416,17 @@ internal class WtLogin {
// if (question[18].toInt() == 0x36) {
// 图片验证
// DebugLogger.debug("是一个图片验证码")
val imageData = tlvMap.getOrFail(0x105).toReadPacket()
return tlvMap.getOrFail(0x105).toReadPacket().withUse {
val imageData = this
val signInfoLength = imageData.readShort()
imageData.discardExact(2)//image Length
val sign = imageData.readBytes(signInfoLength.toInt())
return LoginPacketResponse.Captcha.Picture(
LoginPacketResponse.Captcha.Picture(
data = imageData.readBytes(),
sign = sign
)
}
// } else error("UNKNOWN CAPTCHA QUESTION: ${question.toUHexString()}, tlvMap=" + tlvMap.contentToString())
}