From e017b7c290f4b66760433740cdeb933059f19602 Mon Sep 17 00:00:00 2001 From: djalal Date: Wed, 26 Sep 2012 08:49:22 +0000 Subject: [PATCH] Fixed a bug that prevented Nmap from finding any interfaces when one of them had the type ARPHDR_IEEE80211; this was the case for wireless interfaces operating in access point mode. This bug was reported by Sebastiaan Vileijn. http://seclists.org/nmap-dev/2012/q3/986 --- CHANGELOG | 5 +++++ libdnet-stripped/NMAP_MODIFICATIONS | 27 +++++++++++++++++++++++++++ libdnet-stripped/include/dnet/arp.h | 1 + libdnet-stripped/src/addr.c | 1 + 4 files changed, 34 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 5a852746e..7ffc72734 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,10 @@ # Nmap Changelog ($Id$); -*-text-*- +o Fixed a bug that prevented Nmap from finding any interfaces when one + of them had the type ARPHDR_IEEE80211; this was the case for wireless + interfaces operating in access point mode. This bug was reported by + Sebastiaan Vileijn. [Djalal Harouni] + o Fixed protocol number-to-name mapping. A patch was contributed by hejianet. diff --git a/libdnet-stripped/NMAP_MODIFICATIONS b/libdnet-stripped/NMAP_MODIFICATIONS index 1db45b682..7c76d2872 100644 --- a/libdnet-stripped/NMAP_MODIFICATIONS +++ b/libdnet-stripped/NMAP_MODIFICATIONS @@ -1199,3 +1199,30 @@ index 865e500..4fe059c 100644 #else # define NEXTIFR(i) (i + 1) #endif + +o Support IEEE 802.11 devices and make addr_ston able to handle them + +Index: libdnet-stripped/include/dnet/arp.h +=================================================================== +--- libdnet-stripped/include/dnet/arp.h (revision 29875) ++++ libdnet-stripped/include/dnet/arp.h (working copy) +@@ -39,6 +39,7 @@ + #define ARP_HRD_ETH 0x0001 /* ethernet hardware */ + #define ARP_HRD_IEEE802 0x0006 /* IEEE 802 hardware */ + ++#define ARP_HDR_IEEE80211 0x0321 /* IEEE 802.11 */ + #define ARP_HRD_IEEE80211_RADIOTAP 0x0323 /* IEEE 802.11 + radiotap header */ + #define ARP_HRD_VOID 0xFFFF /* Void type, nothing is known */ + +Index: libdnet-stripped/src/addr.c +=================================================================== +--- libdnet-stripped/src/addr.c (revision 29875) ++++ libdnet-stripped/src/addr.c (working copy) +@@ -318,6 +318,7 @@ + #endif + case AF_UNSPEC: + case ARP_HRD_ETH: /* XXX- Linux arp(7) */ ++ case ARP_HDR_IEEE80211: /* IEEE 802.11 */ + case ARP_HRD_IEEE80211_RADIOTAP: /* IEEE 802.11 + radiotap header */ + a->addr_type = ADDR_TYPE_ETH; + a->addr_bits = ETH_ADDR_BITS; diff --git a/libdnet-stripped/include/dnet/arp.h b/libdnet-stripped/include/dnet/arp.h index ec020b49b..6ec3ea589 100644 --- a/libdnet-stripped/include/dnet/arp.h +++ b/libdnet-stripped/include/dnet/arp.h @@ -39,6 +39,7 @@ struct arp_hdr { #define ARP_HRD_ETH 0x0001 /* ethernet hardware */ #define ARP_HRD_IEEE802 0x0006 /* IEEE 802 hardware */ +#define ARP_HDR_IEEE80211 0x0321 /* IEEE 802.11 */ #define ARP_HRD_IEEE80211_RADIOTAP 0x0323 /* IEEE 802.11 + radiotap header */ #define ARP_HRD_VOID 0xFFFF /* Void type, nothing is known */ diff --git a/libdnet-stripped/src/addr.c b/libdnet-stripped/src/addr.c index bf3e9e767..dd3237cff 100644 --- a/libdnet-stripped/src/addr.c +++ b/libdnet-stripped/src/addr.c @@ -318,6 +318,7 @@ addr_ston(const struct sockaddr *sa, struct addr *a) #endif case AF_UNSPEC: case ARP_HRD_ETH: /* XXX- Linux arp(7) */ + case ARP_HDR_IEEE80211: /* IEEE 802.11 */ case ARP_HRD_IEEE80211_RADIOTAP: /* IEEE 802.11 + radiotap header */ a->addr_type = ADDR_TYPE_ETH; a->addr_bits = ETH_ADDR_BITS;