bonsaiviking

AF_LINK issue with Nmap on FreeBSD

Nov 7th, 2013
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. diff --git a/libnetutil/netutil.cc b/libnetutil/netutil.cc
  2. index 28c624c..e19f6c1 100644
  3. --- a/libnetutil/netutil.cc
  4. +++ b/libnetutil/netutil.cc
  5. @@ -1327,7 +1327,11 @@ static int collect_dnet_interfaces(const struct intf_entry *entry, void *arg) {
  6.      /* The first time through the loop we add the primary interface record.
  7.         After that we add the aliases one at a time. */
  8.      if (!primary_done) {
  9. -      if (addr_ntos(&entry->intf_addr, (struct sockaddr *) &tmpss) == -1) {
  10. +      if ( (addr_ntos(&entry->intf_addr, (struct sockaddr *) &tmpss) == -1)
  11. +#ifdef AF_LINK
  12. +              || (tmpss.ss_family == AF_LINK)
  13. +#endif
  14. +         ) {
  15.          dcrn->ifaces[dcrn->numifaces].addr.ss_family = 0;
  16.        } else {
  17.          rc = canonicalize_address(&tmpss, &dcrn->ifaces[dcrn->numifaces].addr);
  18. @@ -1336,7 +1340,11 @@ static int collect_dnet_interfaces(const struct intf_entry *entry, void *arg) {
  19.        dcrn->ifaces[dcrn->numifaces].netmask_bits = entry->intf_addr.addr_bits;
  20.        primary_done = true;
  21.      } else if (num_aliases_done < entry->intf_alias_num) {
  22. -      if (addr_ntos(&entry->intf_alias_addrs[num_aliases_done], (struct sockaddr *) &tmpss) == -1) {
  23. +      if ( (addr_ntos(&entry->intf_alias_addrs[num_aliases_done], (struct sockaddr *) &tmpss) == -1)
  24. +#ifdef AF_LINK
  25. +              || (tmpss.ss_family == AF_LINK)
  26. +#endif
  27. +         ) {
  28.          dcrn->ifaces[dcrn->numifaces].addr.ss_family = 0;
  29.        } else {
  30.          rc = canonicalize_address(&tmpss, &dcrn->ifaces[dcrn->numifaces].addr);
Add Comment
Please, Sign In to add comment