From b5abe59cf99912a972e62021c94dfae4a8171de1 Mon Sep 17 00:00:00 2001 From: david Date: Tue, 18 Jun 2013 03:44:43 +0000 Subject: [PATCH] Use a mutex for ike.lua's bind to udp/500. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on a patch by Jesper Kückelhahn. http://seclists.org/nmap-dev/2013/q2/347 --- nselib/ike.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nselib/ike.lua b/nselib/ike.lua index 85c55d75b..ebc2de8b4 100644 --- a/nselib/ike.lua +++ b/nselib/ike.lua @@ -355,6 +355,10 @@ function send_request( host, port, packet ) local socket = nmap.new_socket() local s_status, r_status, data, i, hexstring, _ + -- lock resource (port 500/udp) + local mutex = nmap.mutex("ike_port_500"); + mutex "lock"; + -- send the request packet socket:set_timeout(1000) socket:bind(nil, port.number) @@ -368,6 +372,9 @@ function send_request( host, port, packet ) if r_status then i, hexstring = bin.unpack("H" .. data:len(), data) socket:close() + + -- release mutex + mutex "done"; return response(hexstring) else socket:close() @@ -376,6 +383,9 @@ function send_request( host, port, packet ) socket:close() end + -- release mutex + mutex "done"; + return {} end