You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2018/03/15 10:45:51 UTC
[incubator-plc4x] branch master updated: fixed digest calculation
due to short overflow
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
The following commit(s) were added to refs/heads/master by this push:
new 933adbe fixed digest calculation due to short overflow
933adbe is described below
commit 933adbe4a81dc996427a06c588a88b8aaf287cad
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Mar 15 11:45:47 2018 +0100
fixed digest calculation due to short overflow
---
.../java/org/apache/plc4x/java/ads/protocol/Ads2SerialProtocol.java | 5 +++++
.../java/org/apache/plc4x/java/ads/protocol/util/DigestUtil.java | 4 ++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Ads2SerialProtocol.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Ads2SerialProtocol.java
index 256b4ad..eaeb39d 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Ads2SerialProtocol.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Ads2SerialProtocol.java
@@ -116,6 +116,11 @@ public class Ads2SerialProtocol extends MessageToMessageCodec<ByteBuf, AmsPacket
throw new PlcProtocolException("CRC checksum wrong");
}
+ if (byteBuf.readableBytes() > 0) {
+ byteBuf.release();
+ throw new IllegalStateException("Unread bytes left: " + byteBuf.readableBytes());
+ }
+
byteBuf.release();
}
}
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/util/DigestUtil.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/util/DigestUtil.java
index cfed7dd..a813f5c 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/util/DigestUtil.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/util/DigestUtil.java
@@ -37,11 +37,11 @@ public class DigestUtil {
for (ByteReadable byteReadable : byteReadables) {
currentCrcValue = crc16.update(currentCrcValue, byteReadable.getBytes());
}
- return crc16.finalCRC16(currentCrcValue);
+ return crc16.finalCRC16(currentCrcValue) & 0x0000FFFF;
}
public static int calculateCrc16(byte[] bytes) {
- return (int) crc16.calculateCRC(bytes);
+ return (int) crc16.calculateCRC(bytes) & 0x0000FFFF;
}
}
--
To stop receiving notification emails like this one, please contact
sruehl@apache.org.