# UNDF: UNDF-2026-000000550 # tcpdump — CWE-407 scan result: CLEAN **Scan date:** 2026-03-27 **Files scanned:** - `print-ip.c` (IP packet printing) - `addrtoname.c` (address to name cache) ## Candidates Investigated ### addrtoname.c — hash collision chains `ipaddr_string()`, `ip6addr_string()`, `tcpport_string()`, `udpport_string()`, `lookup_emem()` all traverse linked-list collision chains within a HASHNAMESIZE=4096 bucket array. Pattern: ```c p = &hnametable[addr & (HASHNAMESIZE-1)]; for (; p->nxt; p = p->nxt) { if (p->addr == addr) return (p->name); } ``` This is a standard open-chain hash table — O(1) average, O(B) worst case per bucket where B = collision depth. The outer "loop" is the packet stream, but each call is an independent hash lookup, not a membership test inside a bounded outer loop. Bucket depth stays near O(1) with a good hash and 4096 buckets covering a 32-bit address space. This does not meet the CWE-407 definition of "linear membership test inside a loop." ### print-ip.c — ip_optprint, ip_printroute, ip_printts All loops are single-pass O(N) iterations over IP options or route entries. No nested O(N) search inside a loop over options. Clean. ## Verdict: CLEAN No CWE-407 defects found in the scanned files.