From 591d47ffc3d252b1da368905e29d73c57daac3f0 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Sun, 25 Jan 2015 17:32:47 +0100 Subject: [PATCH] Fixed crash when transitting long messages. --- .../com/nutomic/ensichat/protocol/messages/Message.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/scala/com/nutomic/ensichat/protocol/messages/Message.scala b/app/src/main/scala/com/nutomic/ensichat/protocol/messages/Message.scala index b547c33..5b3e74c 100644 --- a/app/src/main/scala/com/nutomic/ensichat/protocol/messages/Message.scala +++ b/app/src/main/scala/com/nutomic/ensichat/protocol/messages/Message.scala @@ -21,7 +21,10 @@ object Message { val contentLength = (header.Length - MessageHeader.Length).toInt val contentBytes = new Array[Byte](contentLength) - stream.read(contentBytes, 0, contentLength) + var numRead = 0 + do { + numRead += stream.read(contentBytes, numRead, contentLength - numRead) + } while (numRead < contentLength) val (crypto, remaining) = CryptoData.read(contentBytes)