[CORD-1664] Fix errors when parsing DHCP packets

Change-Id: Ifa9cd3ba04b31f2b7de60fd63dc655978042dbce
diff --git a/utils/misc/src/main/java/org/onlab/packet/dhcp/DhcpRelayAgentOption.java b/utils/misc/src/main/java/org/onlab/packet/dhcp/DhcpRelayAgentOption.java
index e60df53..adda088 100644
--- a/utils/misc/src/main/java/org/onlab/packet/dhcp/DhcpRelayAgentOption.java
+++ b/utils/misc/src/main/java/org/onlab/packet/dhcp/DhcpRelayAgentOption.java
@@ -102,7 +102,8 @@
             while (byteBuffer.remaining() >= DEFAULT_LEN) {
                 byte subOptCode = byteBuffer.get();
                 byte subOptLen = byteBuffer.get();
-                byte[] subOptData = new byte[subOptLen];
+                int subOptLenInt = UNSIGNED_BYTE_MASK & subOptLen;
+                byte[] subOptData = new byte[subOptLenInt];
                 byteBuffer.get(subOptData);
 
                 DhcpOption subOption = new DhcpOption();