diff -ur dhcp-4.2.4/includes/dhcpd.h dhcp-4.2.4-P1/includes/dhcpd.h
--- dhcp-4.2.4/includes/dhcpd.h	2012-05-15 17:07:41.000000000 -0400
+++ dhcp-4.2.4-P1/includes/dhcpd.h	2012-07-13 02:18:05.000000000 -0400
@@ -432,11 +432,17 @@
 	isc_boolean_t unicast;
 };
 
-/* A network interface's MAC address. */
+/*
+ * A network interface's MAC address.
+ * 20 bytes for the hardware address
+ * and 1 byte for the type tag
+ */
+
+#define HARDWARE_ADDR_LEN 20
 
 struct hardware {
 	u_int8_t hlen;
-	u_int8_t hbuf[21];
+	u_int8_t hbuf[HARDWARE_ADDR_LEN + 1];
 };
 
 #if defined(LDAP_CONFIGURATION)
diff -ur dhcp-4.2.4/server/dhcpv6.c dhcp-4.2.4-P1/server/dhcpv6.c
--- dhcp-4.2.4/server/dhcpv6.c	2012-05-15 17:07:41.000000000 -0400
+++ dhcp-4.2.4-P1/server/dhcpv6.c	2012-07-13 02:18:05.000000000 -0400
@@ -6037,7 +6040,7 @@
 		break;
 	}
 
-	if (hlen == 0)
+	if ((hlen == 0) || (hlen > HARDWARE_ADDR_LEN)) 
 		return 0;
 
 	/*
