mirror of
https://github.com/nmap/nmap.git
synced 2026-09-28 11:04:48 +00:00
Make sure that argument pos is always defined. See #1720
This commit is contained in:
parent
be409657c2
commit
e5c4f4886b
2 changed files with 18 additions and 2 deletions
|
|
@ -1,8 +1,11 @@
|
|||
#Nmap Changelog ($Id$); -*-text-*-
|
||||
|
||||
o [NSE][GH#1720] Unmarshalling functions in library msrpctypes were attempting
|
||||
arithmetic on a nil argument. [Ivan Ivanov, nnposter]
|
||||
|
||||
o [NSE][GH#1720] Functions lsa_lookupnames2 and lsa_lookupsids2 in library
|
||||
msrpc were causing an error when called with debug level 2 or higher.
|
||||
[Ivan Ivanov]
|
||||
msrpc were incorrectly referencing function strjoin when called with debug
|
||||
level 2 or higher. [Ivan Ivanov]
|
||||
|
||||
o [NSE] New script, dicom-brute.nse, attempts to brute force the called
|
||||
Application Entity Title of DICOM servers. [Paulino Calderon]
|
||||
|
|
|
|||
|
|
@ -176,6 +176,7 @@ end
|
|||
function unicode_to_string(buffer, pos, length, do_null)
|
||||
stdnse.debug4("MSRPC: Entering unicode_to_string(pos = %d, length = %d)", pos, length)
|
||||
|
||||
pos = pos or 1
|
||||
local endpos = pos + length * 2 - 1
|
||||
|
||||
if endpos > #buffer then
|
||||
|
|
@ -313,6 +314,7 @@ local function unmarshall_ptr(location, data, pos, func, args, result)
|
|||
end
|
||||
-- If we're unmarshalling the header, then pull off a referent_id.
|
||||
if(location == HEAD or location == ALL) then
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < 4 then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_ptr(). Please report!")
|
||||
return pos, nil
|
||||
|
|
@ -469,6 +471,7 @@ local function unmarshall_array(data, pos, count, func, args)
|
|||
args = {}
|
||||
end
|
||||
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < 4 then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_array(). Please report!")
|
||||
return pos, nil
|
||||
|
|
@ -657,6 +660,7 @@ function unmarshall_unicode(data, pos, do_null)
|
|||
do_null = false
|
||||
end
|
||||
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < 3*4 then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_unicode(). Please report!")
|
||||
return pos, nil
|
||||
|
|
@ -826,6 +830,7 @@ function unmarshall_int64(data, pos)
|
|||
local value
|
||||
|
||||
stdnse.debug4("MSRPC: Entering unmarshall_int64()")
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < 8 then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_int64(). Please report!")
|
||||
return pos, nil
|
||||
|
|
@ -844,6 +849,7 @@ end
|
|||
function unmarshall_int32(data, pos)
|
||||
local value
|
||||
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < 4 then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_int32(). Please report!")
|
||||
return pos, nil
|
||||
|
|
@ -864,6 +870,7 @@ function unmarshall_int16(data, pos, pad)
|
|||
|
||||
stdnse.debug4("MSRPC: Entering unmarshall_int16()")
|
||||
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < 2 then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_int16(). Please report!")
|
||||
return pos, nil
|
||||
|
|
@ -890,6 +897,7 @@ function unmarshall_int8(data, pos, pad)
|
|||
|
||||
stdnse.debug4("MSRPC: Entering unmarshall_int8()")
|
||||
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < 1 then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_int8(). Please report!")
|
||||
return pos, nil
|
||||
|
|
@ -1061,6 +1069,7 @@ function unmarshall_int8_array(data, pos, pad)
|
|||
|
||||
stdnse.debug4("MSRPC: Entering unmarshall_int8_array()")
|
||||
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < 3*4 then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_int8_array(). Please report!")
|
||||
return pos, nil
|
||||
|
|
@ -1183,6 +1192,7 @@ function unmarshall_NTTIME(data, pos)
|
|||
local time
|
||||
stdnse.debug4("MSRPC: Entering unmarshall_NTTIME()")
|
||||
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < 8 then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_NTTIME(). Please report!")
|
||||
return pos, nil
|
||||
|
|
@ -1248,6 +1258,7 @@ end
|
|||
--@return (pos, time) The new position, and the time in seconds since 1970.
|
||||
function unmarshall_SYSTEMTIME(data, pos)
|
||||
local fmt = "<I2I2I2I2I2I2I2I2"
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < string.packsize(fmt) then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_SYSTEMTIME(). Please report!")
|
||||
return pos, nil
|
||||
|
|
@ -1431,6 +1442,7 @@ function unmarshall_raw(data, pos, length)
|
|||
local val
|
||||
stdnse.debug4("MSRPC: Entering unmarshall_raw()")
|
||||
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < length then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_raw(). Please report!")
|
||||
return pos, nil
|
||||
|
|
@ -1480,6 +1492,7 @@ local function unmarshall_guid(data, pos)
|
|||
local fmt = "<I4I2I2c2c6"
|
||||
stdnse.debug4("MSRPC: Entering unmarshall_guid()")
|
||||
|
||||
pos = pos or 1
|
||||
if #data - pos + 1 < string.packsize(fmt) then
|
||||
stdnse.debug1("MSRPC: ERROR: Ran off the end of a packet in unmarshall_guid(). Please report!")
|
||||
return pos, nil
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue