If sdl_alen is too long for the static buffer, call it incomplete instead of overrunning the buffer
diff --git a/agent/mibgroup/ip-mib/data_access/arp_sysctl.c b/agent/mibgroup/ip-mib/data_access/arp_sysctl.c
index 9816664..24e9cda 100644
--- a/agent/mibgroup/ip-mib/data_access/arp_sysctl.c
+++ b/agent/mibgroup/ip-mib/data_access/arp_sysctl.c
@@ -190,7 +190,8 @@
 
         /* HW Address */
         entry->arp_physaddress_len = 6;
-        if (0 < sdl->sdl_alen) {
+        if (0 < sdl->sdl_alen &&
+            sdl->sdl_alen <= NETSNMP_ACCESS_ARP_PHYSADDR_BUF_SIZE) {
             memcpy(entry->arp_physaddress, LLADDR(sdl), sdl->sdl_alen);
             /* Process status */
             /* XXX: setting this value for all states is wrong. */
@@ -298,7 +299,8 @@
 
         /* HW Address */
         entry->arp_physaddress_len = sdl->sdl_alen;
-        if (0 < sdl->sdl_alen) {
+        if (0 < sdl->sdl_alen &&
+            sdl->sdl_alen <= NETSNMP_ACCESS_ARP_PHYSADDR_BUF_SIZE) {
             memcpy(entry->arp_physaddress, LLADDR(sdl), sdl->sdl_alen);
             /* Process status */
             /* XXX: setting this value for all states is wrong. */