ONOS-4505: Bug Fixes
Change-Id: I190b4e6b950381eef8d6fba1e3ac345ea6854e40
diff --git a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IpExtendedReachabilityTlv.java b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IpExtendedReachabilityTlv.java
index f1549e4..90b79cc 100644
--- a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IpExtendedReachabilityTlv.java
+++ b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IpExtendedReachabilityTlv.java
@@ -205,8 +205,11 @@
tlvHeader.setTlvLength(channelBuffer.readByte());
SubTlvType tlvValue = SubTlvType.get(tlvHeader.tlvType());
if (tlvValue != null) {
- this.addSubTlv(SubTlvFinder.findSubTlv(tlvHeader,
- channelBuffer.readBytes(tlvHeader.tlvLength())));
+ TrafficEngineeringSubTlv subTlv =
+ SubTlvFinder.findSubTlv(tlvHeader, channelBuffer.readBytes(tlvHeader.tlvLength()));
+ if (subTlv != null) {
+ this.addSubTlv(subTlv);
+ }
} else {
channelBuffer.readBytes(tlvHeader.tlvLength());
}
diff --git a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IsExtendedReachability.java b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IsExtendedReachability.java
index b2eb6c9..d8e75b1 100644
--- a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IsExtendedReachability.java
+++ b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/IsExtendedReachability.java
@@ -49,9 +49,10 @@
this.neighbors.add(neighbor);
}
+
@Override
public void readFrom(ChannelBuffer channelBuffer) {
- while (channelBuffer.readableBytes() >= IsisUtil.EIGHT_BYTES + IsisUtil.THREE_BYTES) {
+ while (channelBuffer.readableBytes() >= (IsisUtil.EIGHT_BYTES + IsisUtil.THREE_BYTES)) {
NeighborForExtendedIs extendedIs = new NeighborForExtendedIs();
extendedIs.readFrom(channelBuffer);
this.addNeighbor(extendedIs);
diff --git a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/LspEntriesTlv.java b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/LspEntriesTlv.java
index e43d4b4..02199d4 100644
--- a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/LspEntriesTlv.java
+++ b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/LspEntriesTlv.java
@@ -18,6 +18,7 @@
import com.google.common.base.MoreObjects;
import com.google.common.primitives.Bytes;
import org.jboss.netty.buffer.ChannelBuffer;
+import org.onosproject.isis.io.util.IsisUtil;
import java.util.ArrayList;
import java.util.List;
@@ -58,9 +59,9 @@
@Override
public void readFrom(ChannelBuffer channelBuffer) {
- while (channelBuffer.readableBytes() >= 16) {
+ while (channelBuffer.readableBytes() >= (IsisUtil.EIGHT_BYTES * 2)) {
LspEntry lspEntry = new LspEntry();
- lspEntry.readFrom(channelBuffer.readBytes(16));
+ lspEntry.readFrom(channelBuffer.readBytes(IsisUtil.EIGHT_BYTES * 2));
lspEntryList.add(lspEntry);
}
}
diff --git a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/NeighborForExtendedIs.java b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/NeighborForExtendedIs.java
index 88b8462..0bc57b4 100644
--- a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/NeighborForExtendedIs.java
+++ b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/NeighborForExtendedIs.java
@@ -101,8 +101,11 @@
int tlvLength = tlvHeader.tlvLength();
if (tlvValue != null) {
if (channelBuffer.readableBytes() >= tlvLength) {
- this.addSubTlv(SubTlvFinder.findSubTlv(tlvHeader,
- channelBuffer.readBytes(tlvHeader.tlvLength())));
+ TrafficEngineeringSubTlv subTlv =
+ SubTlvFinder.findSubTlv(tlvHeader, channelBuffer.readBytes(tlvHeader.tlvLength()));
+ if (subTlv != null) {
+ this.addSubTlv(subTlv);
+ }
}
} else {
if (channelBuffer.readableBytes() >= tlvLength) {