Nmap Development mailing list archives

Segfault in 3.83DC1 and 3.84ALPHA1 using --excludefile option


From: pijn trein <ptrein () gmail com>
Date: Wed, 31 Aug 2005 10:50:03 -0500

Here's what I've noticed:

Using an exclude file that contains a list of IP addresses that belong
to the same subnet as the target, everything works fine:

$ cat exclude.list

192.168.1.10 <http://192.168.1.10/>
192.168.1.11 <http://192.168.1.11/>
192.168.1.12 <http://192.168.1.12/>
192.168.1.12 <http://192.168.1.12/>
192.168.1.17 <http://192.168.1.17/>
192.168.1.2 <http://192.168.1.2/>
192.168.1.20 <http://192.168.1.20/>
192.168.1.3 <http://192.168.1.3/>
192.168.1.4 <http://192.168.1.4/>
192.168.1.6 <http://192.168.1.6/>
192.168.1.9 <http://192.168.1.9/>
192.168.1.1 <http://192.168.1.1/>
192.168.1.12 <http://192.168.1.12/>
192.168.1.13 <http://192.168.1.13/>
192.168.1.14 <http://192.168.1.14/>
192.168.1.19 <http://192.168.1.19/>
192.168.1.2 <http://192.168.1.2/>
192.168.1.23 <http://192.168.1.23/>
192.168.1.33 <http://192.168.1.33/>
192.168.1.4 <http://192.168.1.4/>
192.168.1.40 <http://192.168.1.40/>
192.168.1.41 <http://192.168.1.41/>
192.168.1.42 <http://192.168.1.42/>
192.168.1.43 <http://192.168.1.43/>
192.168.1.44 <http://192.168.1.44/>
192.168.1.45 <http://192.168.1.45/>
192.168.1.46 <http://192.168.1.46/>
192.168.1.47 <http://192.168.1.47/>
192.168.1.48 <http://192.168.1.48/>
192.168.1.49 <http://192.168.1.49/>

$ sudo nmap -sP -d -d -d -d -PS --excludefile exclude.list -oG
test.gnmap 192.168.1.0/24 <http://192.168.1.0/24>

Fetchfile found /usr/share/nmap/nmap-services

Loaded exclude target of: 192.168.1.10 <http://192.168.1.10/>
Loaded exclude target of: 192.168.1.11 <http://192.168.1.11/>
Loaded exclude target of: 192.168.1.120 <http://192.168.1.120/>
Loaded exclude target of: 192.168.1.126 <http://192.168.1.126/>
Loaded exclude target of: 192.168.1.17 <http://192.168.1.17/>
Loaded exclude target of: 192.168.1.2 <http://192.168.1.2/>
Loaded exclude target of: 192.168.1.20 <http://192.168.1.20/>
Loaded exclude target of: 192.168.1.3 <http://192.168.1.3/>
Loaded exclude target of: 192.168.1.4 <http://192.168.1.4/>
Loaded exclude target of: 192.168.1.6 <http://192.168.1.6/>
Loaded exclude target of: 192.168.1.9 <http://192.168.1.9/>
Loaded exclude target of: 192.168.1.1 <http://192.168.1.1/>
Loaded exclude target of: 192.168.1.12 <http://192.168.1.12/>
Loaded exclude target of: 192.168.1.13 <http://192.168.1.13/>
Loaded exclude target of: 192.168.1.143 <http://192.168.1.143/>
Loaded exclude target of: 192.168.1.19 <http://192.168.1.19/>
Loaded exclude target of: 192.168.1.2 <http://192.168.1.2/>
Loaded exclude target of: 192.168.1.234 <http://192.168.1.234/>
Loaded exclude target of: 192.168.1.33 <http://192.168.1.33/>
Loaded exclude target of: 192.168.1.4 <http://192.168.1.4/>
Loaded exclude target of: 192.168.1.40 <http://192.168.1.40/>
Loaded exclude target of: 192.168.1.41 <http://192.168.1.41/>
Loaded exclude target of: 192.168.1.42 <http://192.168.1.42/>
Loaded exclude target of: 192.168.1.43 <http://192.168.1.43/>
Loaded exclude target of: 192.168.1.44 <http://192.168.1.44/>
Loaded exclude target of: 192.168.1.45 <http://192.168.1.45/>
Loaded exclude target of: 192.168.1.46 <http://192.168.1.46/>
Loaded exclude target of: 192.168.1.47 <http://192.168.1.47/>
Loaded exclude target of: 192.168.1.48 <http://192.168.1.48/>
Loaded exclude target of: 192.168.1.49 <http://192.168.1.49/>
exclude host group 0 is 192.168.1.10 <http://192.168.1.10/>
exclude host group 1 is 192.168.1.11 <http://192.168.1.11/>
exclude host group 2 is 192.168.1.120 <http://192.168.1.120/>
exclude host group 3 is 192.168.1.126 <http://192.168.1.126/>
exclude host group 4 is 192.168.1.17 <http://192.168.1.17/>
exclude host group 5 is 192.168.1.2 <http://192.168.1.2/>
exclude host group 6 is 192.168.1.20 <http://192.168.1.20/>
exclude host group 7 is 192.168.1.3 <http://192.168.1.3/>
exclude host group 8 is 192.168.1.4 <http://192.168.1.4/>
exclude host group 9 is 192.168.1.6 <http://192.168.1.6/>
exclude host group 10 is 192.168.1.9 <http://192.168.1.9/>
exclude host group 11 is 192.168.1.1 <http://192.168.1.1/>
exclude host group 12 is 192.168.1.12 <http://192.168.1.12/>
exclude host group 13 is 192.168.1.13 <http://192.168.1.13/>
exclude host group 14 is 192.168.1.143 <http://192.168.1.143/>
exclude host group 15 is 192.168.1.19 <http://192.168.1.19/>
exclude host group 16 is 192.168.1.2 <http://192.168.1.2/>
exclude host group 17 is 192.168.1.234 <http://192.168.1.234/>
exclude host group 18 is 192.168.1.33 <http://192.168.1.33/>
exclude host group 19 is 192.168.1.4 <http://192.168.1.4/>
exclude host group 20 is 192.168.1.40 <http://192.168.1.40/>
exclude host group 21 is 192.168.1.41 <http://192.168.1.41/>
exclude host group 22 is 192.168.1.42 <http://192.168.1.42/>
exclude host group 23 is 192.168.1.43 <http://192.168.1.43/>
exclude host group 24 is 192.168.1.44 <http://192.168.1.44/>
exclude host group 25 is 192.168.1.45 <http://192.168.1.45/>
exclude host group 26 is 192.168.1.46 <http://192.168.1.46/>
exclude host group 27 is 192.168.1.47 <http://192.168.1.47/>
exclude host group 28 is 192.168.1.48 <http://192.168.1.48/>
exclude host group 29 is 192.168.1.49 <http://192.168.1.49/>

Starting nmap 3.84ALPHA1 ( http://www.insecure.org/nmap/ ) at
2005-08-27 03:00 UTC
The max # of sockets we are using is: 0
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.10 <http://192.168.1.10/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.11 <http://192.168.1.11/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.120 <http://192.168.1.120/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.126 <http://192.168.1.126/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.17 <http://192.168.1.17/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.2 <http://192.168.1.2/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.20 <http://192.168.1.20/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.3 <http://192.168.1.3/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.4 <http://192.168.1.4/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.6 <http://192.168.1.6/>
[...lots of stuff...]

However, if the exclude list includes even one IP address that does
not belong to the target subnet, a segmentation fault occurs:

$ cat exclude.list

192.168.1.10 <http://192.168.1.10/>
192.168.1.11 <http://192.168.1.11/>
192.168.1.12 <http://192.168.1.12/>
192.168.1.12 <http://192.168.1.12/>
192.168.1.17 <http://192.168.1.17/>
192.168.1.2 <http://192.168.1.2/>
192.168.1.20 <http://192.168.1.20/>
192.168.1.3 <http://192.168.1.3/>
192.168.1.4 <http://192.168.1.4/>
192.168.1.6 <http://192.168.1.6/>
192.168.1.9 <http://192.168.1.9/>
192.168.1.1 <http://192.168.1.1/>
192.168.1.12 <http://192.168.1.12/>
192.168.1.13 <http://192.168.1.13/>
192.168.1.14 <http://192.168.1.14/>
192.168.1.19 <http://192.168.1.19/>
192.168.1.2 <http://192.168.1.2/>
192.168.1.23 <http://192.168.1.23/>
192.168.1.33 <http://192.168.1.33/>
192.168.1.4 <http://192.168.1.4/>
192.168.1.40 <http://192.168.1.40/>
192.168.1.41 <http://192.168.1.41/>
192.168.1.42 <http://192.168.1.42/>
192.168.1.43 <http://192.168.1.43/>
192.168.1.44 <http://192.168.1.44/>
192.168.1.45 <http://192.168.1.45/>
192.168.1.46 <http://192.168.1.46/>
192.168.1.47 <http://192.168.1.47/>
192.168.1.48 <http://192.168.1.48/>
192.168.2.49 <http://192.168.2.49/>

$ sudo nmap -sP -d -d -d -d -PS --excludefile exclude.list -oG
test.gnmap 192.168.2.0/24 <http://192.168.2.0/24>

Starting nmap 3.84ALPHA1 ( http://www.insecure.org/nmap/ ) at
2005-08-27 03:01 UTC
Fetchfile found /usr/share/nmap/nmap-services

The max # of sockets we are using is: 0
Loaded exclude target of: 192.168.1.10 <http://192.168.1.10/>
Loaded exclude target of: 192.168.1.11 <http://192.168.1.11/>
Loaded exclude target of: 192.168.1.120 <http://192.168.1.120/>
Loaded exclude target of: 192.168.1.126 <http://192.168.1.126/>
Loaded exclude target of: 192.168.1.17 <http://192.168.1.17/>
Loaded exclude target of: 192.168.1.2 <http://192.168.1.2/>
Loaded exclude target of: 192.168.1.20 <http://192.168.1.20/>
Loaded exclude target of: 192.168.1.3 <http://192.168.1.3/>
Loaded exclude target of: 192.168.1.4 <http://192.168.1.4/>
Loaded exclude target of: 192.168.1.6 <http://192.168.1.6/>
Loaded exclude target of: 192.168.1.9 <http://192.168.1.9/>
Loaded exclude target of: 192.168.1.1 <http://192.168.1.1/>
Loaded exclude target of: 192.168.1.12 <http://192.168.1.12/>
Loaded exclude target of: 192.168.1.13 <http://192.168.1.13/>
Loaded exclude target of: 192.168.1.143 <http://192.168.1.143/>
Loaded exclude target of: 192.168.1.19 <http://192.168.1.19/>
Loaded exclude target of: 192.168.1.2 <http://192.168.1.2/>
Loaded exclude target of: 192.168.1.234 <http://192.168.1.234/>
Loaded exclude target of: 192.168.1.33 <http://192.168.1.33/>
Loaded exclude target of: 192.168.1.4 <http://192.168.1.4/>
Loaded exclude target of: 192.168.1.40 <http://192.168.1.40/>
Loaded exclude target of: 192.168.1.41 <http://192.168.1.41/>
Loaded exclude target of: 192.168.1.42 <http://192.168.1.42/>
Loaded exclude target of: 192.168.2.43 <http://192.168.2.43/>
Loaded exclude target of: 192.168.1.44 <http://192.168.1.44/>
Loaded exclude target of: 192.168.1.45 <http://192.168.1.45/>
Loaded exclude target of: 192.168.1.46 <http://192.168.1.46/>
Loaded exclude target of: 192.168.1.47 <http://192.168.1.47/>
Loaded exclude target of: 192.168.1.48 <http://192.168.1.48/>
Loaded exclude target of: 192.168.1.49 <http://192.168.1.49/>
exclude host group 0 is 192.168.1.10 <http://192.168.1.10/>
exclude host group 1 is 192.168.1.11 <http://192.168.1.11/>
exclude host group 2 is 192.168.1.120 <http://192.168.1.120/>
exclude host group 3 is 192.168.1.126 <http://192.168.1.126/>
exclude host group 4 is 192.168.1.17 <http://192.168.1.17/>
exclude host group 5 is 192.168.1.2 <http://192.168.1.2/>
exclude host group 6 is 192.168.1.20 <http://192.168.1.20/>
exclude host group 7 is 192.168.1.3 <http://192.168.1.3/>
exclude host group 8 is 192.168.1.4 <http://192.168.1.4/>
exclude host group 9 is 192.168.1.6 <http://192.168.1.6/>
exclude host group 10 is 192.168.1.9 <http://192.168.1.9/>
exclude host group 11 is 192.168.1.1 <http://192.168.1.1/>
exclude host group 12 is 192.168.1.12 <http://192.168.1.12/>
exclude host group 13 is 192.168.1.13 <http://192.168.1.13/>
exclude host group 14 is 192.168.1.143 <http://192.168.1.143/>
exclude host group 15 is 192.168.1.19 <http://192.168.1.19/>
exclude host group 16 is 192.168.1.2 <http://192.168.1.2/>
exclude host group 17 is 192.168.1.234 <http://192.168.1.234/>
exclude host group 18 is 192.168.1.33 <http://192.168.1.33/>
exclude host group 19 is 192.168.1.4 <http://192.168.1.4/>
exclude host group 20 is 192.168.1.40 <http://192.168.1.40/>
exclude host group 21 is 192.168.1.41 <http://192.168.1.41/>
exclude host group 22 is 192.168.1.42 <http://192.168.1.42/>
exclude host group 23 is 192.168.2.43 <http://192.168.2.43/>
exclude host group 24 is 192.168.1.44 <http://192.168.1.44/>
exclude host group 25 is 192.168.1.45 <http://192.168.1.45/>
exclude host group 26 is 192.168.1.46 <http://192.168.1.46/>
exclude host group 27 is 192.168.1.47 <http://192.168.1.47/>
exclude host group 28 is 192.168.1.48 <http://192.168.1.48/>
exclude host group 29 is 192.168.1.49 <http://192.168.1.49/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.10 <http://192.168.1.10/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.11 <http://192.168.1.11/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.120 <http://192.168.1.120/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.126 <http://192.168.1.126/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.17 <http://192.168.1.17/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.2 <http://192.168.1.2/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.20 <http://192.168.1.20/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.3 <http://192.168.1.3/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.4 <http://192.168.1.4/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.6 <http://192.168.1.6/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.9 <http://192.168.1.9/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.1 <http://192.168.1.1/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.12 <http://192.168.1.12/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.13 <http://192.168.1.13/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.143 <http://192.168.1.143/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.19 <http://192.168.1.19/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.2 <http://192.168.1.2/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.234 <http://192.168.1.234/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.33 <http://192.168.1.33/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.4 <http://192.168.1.4/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.40 <http://192.168.1.40/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.41 <http://192.168.1.41/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.42 <http://192.168.1.42/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.2.43 <http://192.168.2.43/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.44 <http://192.168.1.44/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.45 <http://192.168.1.45/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.46 <http://192.168.1.46/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.47 <http://192.168.1.47/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.48 <http://192.168.1.48/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.49 <http://192.168.1.49/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.10 <http://192.168.1.10/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.11 <http://192.168.1.11/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.120 <http://192.168.1.120/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.126 <http://192.168.1.126/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.17 <http://192.168.1.17/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.2 <http://192.168.1.2/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.20 <http://192.168.1.20/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.3 <http://192.168.1.3/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.4 <http://192.168.1.4/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.6 <http://192.168.1.6/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.9 <http://192.168.1.9/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.1 <http://192.168.1.1/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.10 <http://192.168.1.10/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.11 <http://192.168.1.11/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.120 <http://192.168.1.120/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.126 <http://192.168.1.126/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.17 <http://192.168.1.17/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.2 <http://192.168.1.2/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.10 <http://192.168.1.10/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.11 <http://192.168.1.11/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.120 <http://192.168.1.120/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.126 <http://192.168.1.126/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.17 <http://192.168.1.17/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.2 <http://192.168.1.2/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.20 <http://192.168.1.20/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.3 <http://192.168.1.3/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.10 <http://192.168.1.10/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.11 <http://192.168.1.11/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.120 <http://192.168.1.120/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.126 <http://192.168.1.126/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.17 <http://192.168.1.17/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.2 <http://192.168.1.2/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.20 <http://192.168.1.20/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.3 <http://192.168.1.3/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.4 <http://192.168.1.4/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.10 <http://192.168.1.10/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.11 <http://192.168.1.11/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.120 <http://192.168.1.120/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.126 <http://192.168.1.126/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.17 <http://192.168.1.17/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.2 <http://192.168.1.2/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.20 <http://192.168.1.20/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.3 <http://192.168.1.3/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.4 <http://192.168.1.4/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.6 <http://192.168.1.6/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.9 <http://192.168.1.9/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.1 <http://192.168.1.1/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.12 <http://192.168.1.12/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.13 <http://192.168.1.13/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.143 <http://192.168.1.143/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.19 <http://192.168.1.19/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.2 <http://192.168.1.2/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.234 <http://192.168.1.234/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.33 <http://192.168.1.33/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.4 <http://192.168.1.4/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.40 <http://192.168.1.40/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.41 <http://192.168.1.41/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.1.42 <http://192.168.1.42/>
doing 0.0.0.0 <http://0.0.0.0/> = 192.168.2.43 <http://192.168.2.43/>
Segmentation fault

This problem does not manifest on regression testing with nmap 3.81.


_______________________________________________
Sent through the nmap-dev mailing list
http://cgi.insecure.org/mailman/listinfo/nmap-dev


Current thread: