diff --git a/pcap4j-core/src/main/java/org/pcap4j/packet/UnknownTcpOption.java b/pcap4j-core/src/main/java/org/pcap4j/packet/UnknownTcpOption.java index e6b1f0ae8..a25142d8a 100644 --- a/pcap4j-core/src/main/java/org/pcap4j/packet/UnknownTcpOption.java +++ b/pcap4j-core/src/main/java/org/pcap4j/packet/UnknownTcpOption.java @@ -55,7 +55,7 @@ private UnknownTcpOption(byte[] rawData, int offset, int length) throws IllegalR this.kind = TcpOptionKind.getInstance(rawData[offset]); this.length = rawData[1 + offset]; - if (length < this.length) { + if (length < getLengthAsInt()) { StringBuilder sb = new StringBuilder(100); sb.append("The raw data is too short to build this option(") .append(this.length) @@ -68,7 +68,7 @@ private UnknownTcpOption(byte[] rawData, int offset, int length) throws IllegalR throw new IllegalRawDataException(sb.toString()); } - if (this.length > 2) this.data = ByteArrays.getSubArray(rawData, 2 + offset, this.length - 2); + if (this.length > 2) this.data = ByteArrays.getSubArray(rawData, 2 + offset, getLengthAsInt() - 2); else this.data = new byte[] {}; }