From 1db6953f0851ed6c5779007fa917f444980b43b2 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Tue, 18 Oct 2016 20:17:51 +0200 Subject: [PATCH] Proper fix for #2236 --- lib/core/option.py | 7 ++++--- lib/core/settings.py | 2 +- lib/utils/api.py | 3 ++- txt/checksum.md5 | 6 +++--- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/core/option.py b/lib/core/option.py index 402b612d2..a48f5cc34 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -2242,9 +2242,10 @@ def _mergeOptions(inputOptions, overrideOptions): if key not in conf or value not in (None, False) or overrideOptions: conf[key] = value - for key, value in conf.items(): - if value is not None: - kb.explicitSettings.add(key) + if not hasattr(conf, "api"): + for key, value in conf.items(): + if value is not None: + kb.explicitSettings.add(key) for key, value in defaults.items(): if hasattr(conf, key) and conf[key] is None: diff --git a/lib/core/settings.py b/lib/core/settings.py index 2320ddcc0..a735f1609 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -19,7 +19,7 @@ from lib.core.enums import DBMS_DIRECTORY_NAME from lib.core.enums import OS # sqlmap version (...) -VERSION = "1.0.10.46" +VERSION = "1.0.10.47" TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE) diff --git a/lib/utils/api.py b/lib/utils/api.py index d1e408518..7ed2b83fe 100644 --- a/lib/utils/api.py +++ b/lib/utils/api.py @@ -29,6 +29,7 @@ from lib.core.data import kb from lib.core.data import paths from lib.core.data import logger from lib.core.datatype import AttribDict +from lib.core.defaults import _defaults from lib.core.enums import CONTENT_STATUS from lib.core.enums import MKSTEMP_PREFIX from lib.core.enums import PART_RUN_CONTENT_TYPES @@ -132,7 +133,7 @@ class Task(object): for _ in optDict: for name, type_ in optDict[_].items(): type_ = unArrayizeValue(type_) - self.options[name] = datatype[type_] # don't use _defaults here (breaking kb.explicitSettings logic) + self.options[name] = _defaults.get(name, datatype[type_]) # Let sqlmap engine knows it is getting called by the API, # the task ID and the file path of the IPC database diff --git a/txt/checksum.md5 b/txt/checksum.md5 index 396ba2cc3..3a7a071f6 100644 --- a/txt/checksum.md5 +++ b/txt/checksum.md5 @@ -39,13 +39,13 @@ e4aec2b11c1ad6039d0c3dbbfbc5eb1a lib/core/exception.py cc9c82cfffd8ee9b25ba3af6284f057e lib/core/__init__.py 91c514013daa796e2cdd940389354eac lib/core/log.py 468ca9a68a5a40a1cb8395602083ba32 lib/core/optiondict.py -6d3e00fe69fd2fe9a794cae18b48b56c lib/core/option.py +470577bfa701af901b29fbc837c5d537 lib/core/option.py 7af487340c138f7b5dbd443161cbb428 lib/core/profiling.py e60456db5380840a586654344003d4e6 lib/core/readlineng.py 5ef56abb8671c2ca6ceecb208258e360 lib/core/replication.py 99a2b496b9d5b546b335653ca801153f lib/core/revision.py 7c15dd2777af4dac2c89cab6df17462e lib/core/session.py -94590a9ec85ca3c9f9bb04ee910db4e0 lib/core/settings.py +47e5203e353435e6b15651e616877347 lib/core/settings.py 7af83e4f18cab6dff5e67840eb65be80 lib/core/shell.py 23657cd7d924e3c6d225719865855827 lib/core/subprocessng.py c3ace7874a536d801f308cf1fd03df99 lib/core/target.py @@ -99,7 +99,7 @@ cc9c82cfffd8ee9b25ba3af6284f057e lib/techniques/__init__.py cc9c82cfffd8ee9b25ba3af6284f057e lib/techniques/union/__init__.py f5d6884cdeed28281187c111d3e49e3b lib/techniques/union/test.py 12ce1bb7ee5f1f23f58be12fe9fa8472 lib/techniques/union/use.py -f48873f749b53a9e475292590ba7ed2e lib/utils/api.py +26c1babc6289fac9056f8b21d10f3bb1 lib/utils/api.py 8cdc8c1e663c3b92a756fb7b02cc3c02 lib/utils/crawler.py 84604ae4cf0f31602b412036b51f5dae lib/utils/deps.py 4dfd3a95e73e806f62372d63bc82511f lib/utils/getch.py