diff options
author | Anshul Jain <anshuljain1985@gmail.com> | 2017-08-28 11:15:03 +0530 |
---|---|---|
committer | Anshul Jain <anshuljain1985@gmail.com> | 2017-08-28 11:15:03 +0530 |
commit | b90dfecfdc127d1870f5f61db177f8d63fb9a095 (patch) | |
tree | 0952a094d94b44ee68129a29ea2cda6c8da13bcb /src | |
parent | 879a25f09033068eb8cb174c1cb3150df594f2e4 (diff) | |
download | trackermap-server-b90dfecfdc127d1870f5f61db177f8d63fb9a095.tar.gz trackermap-server-b90dfecfdc127d1870f5f61db177f8d63fb9a095.tar.bz2 trackermap-server-b90dfecfdc127d1870f5f61db177f8d63fb9a095.zip |
Fix for Gt06 GPS data length can not be greater than 12.
Fix for Alarm packet LBS length skip for 9.
Diffstat (limited to 'src')
-rw-r--r-- | src/org/traccar/protocol/Gt06ProtocolDecoder.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/org/traccar/protocol/Gt06ProtocolDecoder.java index d8da7e6de..dbbaeaf03 100644 --- a/src/org/traccar/protocol/Gt06ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gt06ProtocolDecoder.java @@ -182,6 +182,9 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder { } if (length > 0) { + if (length > 12) { + length = 12; + } buf.skipBytes(length - 12); // skip reserved } @@ -202,7 +205,11 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder { buf.readUnsignedShort(), buf.readUnsignedByte(), buf.readUnsignedShort(), buf.readUnsignedMedium()))); if (length > 0) { - buf.skipBytes(length - 8); + if (hasLength) { + buf.skipBytes(length - 9); + } else { + buf.skipBytes(length - 8); + } } return true; |