diff -u ../nmap-temp/tcpip.cc ./tcpip.cc --- ../nmap-temp/tcpip.cc 2007-11-20 01:17:15.855796800 -0800 +++ ./tcpip.cc 2007-11-20 01:19:59.350891200 -0800 @@ -2616,16 +2616,16 @@ /* The first time through the loop we add the primary interface record. After that we add the aliases one at a time. */ if (!primary_done) { - if (entry->intf_addr.addr_type != ADDR_TYPE_IP) - return 0; - addr_ntos(&entry->intf_addr, (struct sockaddr *) &dcrn->ifaces[dcrn->numifaces].addr); - dcrn->ifaces[dcrn->numifaces].netmask_bits = entry->intf_addr.addr_bits; + if (entry->intf_addr.addr_type == ADDR_TYPE_IP) { + addr_ntos(&entry->intf_addr, (struct sockaddr *) &dcrn->ifaces[dcrn->numifaces].addr); + dcrn->ifaces[dcrn->numifaces].netmask_bits = entry->intf_addr.addr_bits; + } primary_done = true; - } else if (num_aliases_done < entry->intf_alias_num) { - if (entry->intf_alias_addrs[num_aliases_done].addr_type != ADDR_TYPE_IP) - return 0; - addr_ntos(&entry->intf_alias_addrs[num_aliases_done], (struct sockaddr *) &dcrn->ifaces[dcrn->numifaces].addr); - dcrn->ifaces[dcrn->numifaces].netmask_bits = entry->intf_alias_addrs[num_aliases_done].addr_bits; + } else if (num_aliases_done < (int) entry->intf_alias_num) { + if (entry->intf_alias_addrs[num_aliases_done].addr_type == ADDR_TYPE_IP) { + addr_ntos(&entry->intf_alias_addrs[num_aliases_done], (struct sockaddr *) &dcrn->ifaces[dcrn->numifaces].addr); + dcrn->ifaces[dcrn->numifaces].netmask_bits = entry->intf_alias_addrs[num_aliases_done].addr_bits; + } num_aliases_done++; }