1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-18 21:49:01 +00:00

Fixed bug that would fail to calculate a PADI host unique value in the pppoe

library under certain circumstances. Fixed bug that would fail to terminate
script properly if no response was received from pppoe server. [Patrik]
This commit is contained in:
patrik
2012-01-10 21:08:20 +00:00
parent 956c9ffe53
commit 92cb5a3def
2 changed files with 12 additions and 3 deletions

View File

@@ -434,12 +434,19 @@ PPPoE = {
-- @param value string/number containing the tag value
-- @return o instance of ConfigNak
new = function(self, tags)
local c = tostring(coroutine.running())
c = c:match("^thread: 0x(.*)"):sub(1, 8)
math.randomseed(os.time())
while ( #c < 8 ) do
c = c .. stdnse.tohex(math.random(255))
end
local o = {
header = PPPoE.Header:new(PPPoE.Code.PADI),
tags = tags or {
PPPoE.Tag:new(PPPoE.TagType.SERVICE_NAME),
PPPoE.Tag:new(PPPoE.TagType.HOST_UNIQUE, bin.pack("H",
tostring(coroutine.running()):match("^thread: 0x(........)")))
PPPoE.Tag:new(PPPoE.TagType.HOST_UNIQUE, bin.pack("H", c))
}
}
setmetatable(o, self)

View File

@@ -32,7 +32,9 @@ require 'pppoe'
prerule = function() return true end
local function fail(err)
if ( err ) then
return ("\n ERROR: %s"):format(err)
end
end
local function mac_tostr(mac)