Nmap Development mailing list archives

Addressing the hang on Windows 2012 R2 w/WinPcap


From: Daniel Miller <bonsaiviking () gmail com>
Date: Sun, 20 Sep 2015 23:00:49 -0500

List,

I recently pushed a change in r35259 to try to address a hang that several
of our users have experienced on Windows 8.1 and 2012 R2. Specifically,
Nmap hangs when multiple nmap.exe processes are run in parallel and reach
the same scan phase at the same time. In debugging the issue with WinPcap's
debug DLLs, we traced the problem to concurrent access to the WinPcap NPF
driver.

The change in r35259 introduces a global mutex to control access to the NPF
driver. The locations to control were determined by working backwards from
the OpenServiceA calls within WinPcap to the Packet.DLL functions that
contained them. There were calls to these functions in libpcap, libdnet,
and libnetutil.

I am not a Windows programming expert, so I cannot be certain that this is
the best approach, or that I did not do something unorthodox or
inadvisable. I have CC'd some of our best Windows minds (apologies to
anyone I didn't think of in the space of 10 seconds) and I'm hoping to hear
their thoughts on this, or any concerns that anyone may have with this
change. I intend to put this into the next (and final) BETA release this
week for broader testing, so I would like a little more assurance that it
is safe and sane.

Dan
_______________________________________________
Sent through the dev mailing list
https://nmap.org/mailman/listinfo/dev
Archived at http://seclists.org/nmap-dev/

Current thread: