borrowed from fedora
fix for CAN-2005-1278

--- 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;
 
