atmarp_spaddr_print(netdissect_options *ndo,
		    const struct atmarp_pkthdr *ap, u_short pro)
{
	if (pro != ETHERTYPE_IP && pro != ETHERTYPE_TRAIL)
		ND_PRINT((ndo, "<wrong proto type>"));
	else if (ATMSPROTO_LEN(ap) != 4)
		ND_PRINT((ndo, "<wrong splen>"));
	else
		ND_PRINT((ndo, "%s", ipaddr_string(ndo, ATMSPA(ap))));
}
The software reads data past the end, or before the beginning, of the intended buffer.