diff options
author | Jakob Odersky <jodersky@gmail.com> | 2015-03-20 13:51:48 +0100 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2015-03-20 13:51:48 +0100 |
commit | 31b9e411fd5b8be0dcf7babea6cb39bb26989e6e (patch) | |
tree | 6b36b2b7618ecdcd2b771ada80e0c8a499207de2 /mavlink-library/src/main/twirl/org | |
parent | 5f97b8128adf7d0bdcc9da0d7ead2d7faedc0abc (diff) | |
download | sbt-mavlink-31b9e411fd5b8be0dcf7babea6cb39bb26989e6e.tar.gz sbt-mavlink-31b9e411fd5b8be0dcf7babea6cb39bb26989e6e.tar.bz2 sbt-mavlink-31b9e411fd5b8be0dcf7babea6cb39bb26989e6e.zip |
fix overflow errors
Diffstat (limited to 'mavlink-library/src/main/twirl/org')
-rw-r--r-- | mavlink-library/src/main/twirl/org/mavlink/Parser.scala.txt | 4 | ||||
-rw-r--r-- | mavlink-library/src/main/twirl/org/mavlink/messages/messages.scala.txt | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/mavlink-library/src/main/twirl/org/mavlink/Parser.scala.txt b/mavlink-library/src/main/twirl/org/mavlink/Parser.scala.txt index 48af210..97068e6 100644 --- a/mavlink-library/src/main/twirl/org/mavlink/Parser.scala.txt +++ b/mavlink-library/src/main/twirl/org/mavlink/Parser.scala.txt @@ -101,10 +101,10 @@ class Parser(receiver: Packet => Unit, error: Parser.Errors.Error => Unit = _ => inbound.payload += c inbound.currentLength += 1 inbound.crc = inbound.crc.accumulate(c) - if(inbound.currentLength >= Packet.MaxPayloadLength) { + if(inbound.currentLength > Packet.MaxPayloadLength) { state = Idle error(Errors.OverflowError) - } else if (inbound.currentLength>= inbound.length) { + } else if (inbound.currentLength >= inbound.length) { state = GotPayload } diff --git a/mavlink-library/src/main/twirl/org/mavlink/messages/messages.scala.txt b/mavlink-library/src/main/twirl/org/mavlink/messages/messages.scala.txt index e973547..939c1d1 100644 --- a/mavlink-library/src/main/twirl/org/mavlink/messages/messages.scala.txt +++ b/mavlink-library/src/main/twirl/org/mavlink/messages/messages.scala.txt @@ -28,7 +28,7 @@ import java.nio.charset.Charset case FloatType(4) => {@{buffer}.getFloat()} case FloatType(8) => {@{buffer}.getDouble()} case StringType(maxLength) =>{{ - val bytes = Array[Byte](@maxLength) + val bytes = new Array[Byte](@maxLength) @{buffer}.get(bytes, 0, @maxLength) val length = bytes.indexOf(0) match { case -1 => @maxLength @@ -49,7 +49,7 @@ import java.nio.charset.Charset { val bytes = @{data}.getBytes(Charset.forName("UTF-8")) val endPosition = @{buffer}.position + @maxLength - @{buffer}.put(bytes, 0, math.max(bytes.length, @maxLength)) + @{buffer}.put(bytes, 0, math.min(bytes.length, @maxLength)) while (@{buffer}.position < endPosition) { @{buffer}.put(0: Byte) } |