Nmap Development mailing list archives

Re: Assertion `pt->down_this_block > 0' failed.


From: Fyodor <fyodor () insecure org>
Date: Mon, 5 Jul 2004 18:47:47 -0700

On Thu, May 20, 2004 at 07:21:14PM -0400, Beirne Konarski wrote:
I'm running nmap-3.50, built by hand,  on several Compaqs running RedHat 
AS2.1.  I'm scanning large numbers of systems looking for several ports.  I'm 
running it in the form:

nmap --randomize_hosts -n -iL file_of subnets -sU -sS -p 135,139,445  -oG -

What often happens is I get the following assertion failure:

nmap: targets.cc:196: int hostupdate (Target **, Target *, int, int, int, 
timeout_info *, timeval *, timeval *, pingtune *, tcpqueryinfo *, pingstyle): 
Assertion `pt->down_this_block > 0' failed.

Apparently the host number is losing synchronization with the range of current 
hosts.  What can I do about this problem?

Thanks for the report.  These assertion failures are always a
bug in Nmap that needs to be fixed.  I have been able to repduce this
problem and have a fix for the next version of Nmap (which I hope to
release today or tomorrow).  Or you can apply the following patch to
your version of Nmap:

--- targets.cc  5 Jul 2004 08:24:21 -0000       1.33
+++ targets.cc  6 Jul 2004 01:46:06 -0000
@@ -195,8 +195,14 @@
     target->flags &= ~HOST_DOWN; /* Kill the host_down flag */
     target->flags |= HOST_UP;
     if (hostnum >= pt->group_start) {  
-      assert(pt->down_this_block > 0);
-      pt->down_this_block--;
+      /* The pt.block_tries was added because it is possible for a
+        host to be marked down in the first block try, then
+        down_this_block will be reset to 0 for the next try, in which
+        a late packet could cause the box to be marked up.  In that
+        case, down_this_block could legitimately be 0. */
+      assert(pt.block_tries > 0 || pt->down_this_block > 0);
+      if (pt->down_this_block > 0)
+       pt->down_this_block--;
       pt->up_this_block++;
     }
   } else if (newstate == HOST_DOWN) {


Cheers,
-F

---------------------------------------------------------------------
For help using this (nmap-dev) mailing list, send a blank email to 
nmap-dev-help () insecure org . List archive: http://seclists.org



Current thread: