From a5bf21e5dbd2442303ef4001b33835a8e20434ee Mon Sep 17 00:00:00 2001 From: kris Date: Sun, 1 Jun 2008 06:31:50 +0000 Subject: [PATCH] o The NSE nmap.registry.args table is now available, albeit empty, when --script-args isn't used. Now scripts don't need to check if it's nil before attempting to index it. [Kris] --- CHANGELOG | 4 ++++ NmapOps.cc | 5 ++++- nse_init.cc | 5 +---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index c0933e267..3f2a19d21 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -180,6 +180,10 @@ o Fix a couple bugs in the way the Nmap built system checked for an configure option for specifying your own liblua. [Daniel Roethlisberger] +o The NSE nmap.registry.args table is now available, albeit empty, when + --script-args isn't used. Now scripts don't need to check if it's nil + before attempting to index it. [Kris] + o Changed SSLv2-support.nse so that it only enumerates the list of available ciphers with a verbosity level of at least two or with debugging enabled. [Kris] diff --git a/NmapOps.cc b/NmapOps.cc index 3634e89c5..fc4cb1bdd 100644 --- a/NmapOps.cc +++ b/NmapOps.cc @@ -456,7 +456,10 @@ void NmapOps::ValidateOptions() { if(ipoptions && osscan) error("WARNING: Ip options are NOT used while OS scanning!"); - + + /* Make sure nmap.registry.args is available (even if it's empty) */ + if (!scriptargs) + scriptargs = strdup(""); } void NmapOps::setMaxOSTries(int mot) { diff --git a/nse_init.cc b/nse_init.cc index e437f5495..b836a84d7 100644 --- a/nse_init.cc +++ b/nse_init.cc @@ -285,7 +285,7 @@ int init_lua (lua_State *L) /* int init_parseargs (lua_State *L) * * Arguments - * args Arguments passed through --script-args + * args Arguments passed through --script-args, or "" if it wasn't used * Returns * function Function that returns a table with the arguments, or an error * message describing why the arguments could not be parsed. @@ -320,9 +320,6 @@ int init_parseargs (lua_State *L) */ int init_setargs (lua_State *L) { - if (o.scriptargs == NULL) - return 0; - lua_getglobal(L, "nmap"); lua_getfield(L, -1, "registry");