samanwita pal
Committed by Gerrit Code Review

Adding some extra checks against bufer overflow

Change-Id: I08b53823792de363c7da22cda1db198b95242ba4
...@@ -24,7 +24,8 @@ import java.util.ArrayList; ...@@ -24,7 +24,8 @@ import java.util.ArrayList;
24 import java.util.List; 24 import java.util.List;
25 import java.util.ListIterator; 25 import java.util.ListIterator;
26 26
27 -import static org.onlab.packet.PacketUtils.*; 27 +import static com.google.common.base.Preconditions.checkArgument;
28 +import static org.onlab.packet.PacketUtils.checkInput;
28 29
29 /** 30 /**
30 * 31 *
...@@ -423,6 +424,8 @@ public class DHCP extends BasePacket { ...@@ -423,6 +424,8 @@ public class DHCP extends BasePacket {
423 bb.putInt(this.yourIPAddress); 424 bb.putInt(this.yourIPAddress);
424 bb.putInt(this.serverIPAddress); 425 bb.putInt(this.serverIPAddress);
425 bb.putInt(this.gatewayIPAddress); 426 bb.putInt(this.gatewayIPAddress);
427 + checkArgument(this.clientHardwareAddress.length <= 16,
428 + "Hardware address is too long (%s bytes)", this.clientHardwareAddress.length);
426 bb.put(this.clientHardwareAddress); 429 bb.put(this.clientHardwareAddress);
427 if (this.clientHardwareAddress.length < 16) { 430 if (this.clientHardwareAddress.length < 16) {
428 for (int i = 0; i < 16 - this.clientHardwareAddress.length; ++i) { 431 for (int i = 0; i < 16 - this.clientHardwareAddress.length; ++i) {
......