Nmap Development mailing list archives

Re: manufacturer information for address-info.nse


From: Djalal Harouni <tixxdz () opendz org>
Date: Sat, 24 Sep 2011 23:00:04 +0100

On Sat, Sep 24, 2011 at 11:16:23PM +0400, Vasiliy Kulikov wrote:
On Sat, Sep 24, 2011 at 09:21 -0700, David Fifield wrote:
On Sat, Sep 24, 2011 at 05:00:10PM +0400, Vasiliy Kulikov wrote:
FWIW, while this is not a big deal for this specific usage, but there is
a race condition as nmap.registry is a global variable.  If two parallel
invocations of the script simultaneously test nmap.registry.mac they
both recalc and set mac.prefixes variable.  For this usage it's harmless
as Lua has a garbage collector and recalc doesn't do anything significant.

No, that's not how parallelism works in NSE. See
http://www.lua.org/manual/5.1/manual.html#2.11. It's not possible for
two scripts to access this value simultaneously because only one script
runs at a time.

Ah, so all NSE scripts are run as coroutines, which run not in parallel
unless yield is called, even if run against different target hosts?  I
didn't know that, thank you for the information!
You can find the list of the functions that will yield here:
http://seclists.org/nmap-dev/2011/q3/534

-- 
tixxdz
http://opendz.org
_______________________________________________
Sent through the nmap-dev mailing list
http://cgi.insecure.org/mailman/listinfo/nmap-dev
Archived at http://seclists.org/nmap-dev/


Current thread: