--- tcpdump-3.8.2/print-isoclns.c.old 2005-04-28 12:58:28.000000000 +0200 +++ tcpdump-3.8.2/print-isoclns.c 2005-04-28 13:07:17.000000000 +0200 @@ -1748,12 +1748,14 @@ lan_alen = *tptr++; /* LAN adress length */ tmp --; printf("\n\t LAN address length %u bytes ",lan_alen); - while (tmp >= lan_alen) { - if (!TTEST2(*tptr, lan_alen)) - goto trunctlv; - printf("\n\t\tIS Neighbor: %s",isis_print_id(tptr,lan_alen)); - tmp -= lan_alen; - tptr +=lan_alen; + if(lan_alen >= SYSTEM_ID_LEN) { + while (tmp >= lan_alen) { + if (!TTEST2(*tptr, lan_alen)) + goto trunctlv; + printf("\n\t\tIS Neighbor: %s",isis_print_id(tptr,lan_alen)); + tmp -= lan_alen; + tptr +=lan_alen; + } } break;