From aecaa27839f2d73a471ff98ee58ca13cc0eacd52 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Wed, 13 Mar 2019 16:40:22 +0100 Subject: [PATCH] Minor refactoring --- lib/core/common.py | 9 +++++++++ lib/core/option.py | 13 +++++++------ lib/core/settings.py | 2 +- txt/checksum.md5 | 6 +++--- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/lib/core/common.py b/lib/core/common.py index fd4021837..a08578a31 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -1809,6 +1809,15 @@ def normalizePath(filepath): return retVal +def safeFilepathEncode(filepath): + retVal = filepath + + if filepath and isinstance(filepath, unicode): + retVal = filepath.encode(sys.getfilesystemencoding() or UNICODE_ENCODING) + + return retVal + + def safeExpandUser(filepath): """ Patch for a Python Issue18171 (http://bugs.python.org/issue18171) diff --git a/lib/core/option.py b/lib/core/option.py index 689ae0f8b..9c432b739 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -54,6 +54,7 @@ from lib.core.common import readInput from lib.core.common import resetCookieJar from lib.core.common import runningAsAdmin from lib.core.common import safeExpandUser +from lib.core.common import safeFilepathEncode from lib.core.common import saveConfig from lib.core.common import setColor from lib.core.common import setOptimize @@ -734,8 +735,8 @@ def _setTamperingFunctions(): for script in re.split(PARAMETER_SPLITTING_REGEX, conf.tamper): found = False - path = paths.SQLMAP_TAMPER_PATH.encode(sys.getfilesystemencoding() or UNICODE_ENCODING) - script = script.strip().encode(sys.getfilesystemencoding() or UNICODE_ENCODING) + path = safeFilepathEncode(paths.SQLMAP_TAMPER_PATH) + script = safeFilepathEncode(script.strip()) try: if not script: @@ -770,7 +771,7 @@ def _setTamperingFunctions(): sys.path.insert(0, dirname) try: - module = __import__(filename[:-3].encode(sys.getfilesystemencoding() or UNICODE_ENCODING)) + module = __import__(safeFilepathEncode(filename[:-3])) except Exception as ex: raise SqlmapSyntaxException("cannot import tamper module '%s' (%s)" % (filename[:-3], getSafeExString(ex))) @@ -835,7 +836,7 @@ def _setPreprocessFunctions(): for script in re.split(PARAMETER_SPLITTING_REGEX, conf.preprocess): found = False - script = script.strip().encode(sys.getfilesystemencoding() or UNICODE_ENCODING) + script = safeFilepathEncode(script.strip()) try: if not script: @@ -867,7 +868,7 @@ def _setPreprocessFunctions(): sys.path.insert(0, dirname) try: - module = __import__(filename[:-3].encode(sys.getfilesystemencoding() or UNICODE_ENCODING)) + module = __import__(safeFilepathEncode(filename[:-3])) except Exception as ex: raise SqlmapSyntaxException("cannot import preprocess module '%s' (%s)" % (filename[:-3], getSafeExString(ex))) @@ -922,7 +923,7 @@ def _setWafFunctions(): try: if filename[:-3] in sys.modules: del sys.modules[filename[:-3]] - module = __import__(filename[:-3].encode(sys.getfilesystemencoding() or UNICODE_ENCODING)) + module = __import__(safeFilepathEncode(filename[:-3])) except ImportError as ex: raise SqlmapSyntaxException("cannot import WAF script '%s' (%s)" % (filename[:-3], getSafeExString(ex))) diff --git a/lib/core/settings.py b/lib/core/settings.py index de38f0668..93adee2b0 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.3.3.23" +VERSION = "1.3.3.24" 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/txt/checksum.md5 b/txt/checksum.md5 index 1540a84a6..b43dfbf0d 100644 --- a/txt/checksum.md5 +++ b/txt/checksum.md5 @@ -30,7 +30,7 @@ c1da277517c7ec4c23e953a51b51e203 lib/controller/handler.py fb6be55d21a70765e35549af2484f762 lib/controller/__init__.py ed7874be0d2d3802f3d20184f2b280d5 lib/core/agent.py a932126e7d80e545c5d44af178d0bc0c lib/core/bigarray.py -bebd1593691dd465304e09a9b1c62a71 lib/core/common.py +35d8ff12885e0a068c9bff647b51062e lib/core/common.py de8d27ae6241163ff9e97aa9e7c51a18 lib/core/convert.py abcb1121eb56d3401839d14e8ed06b6e lib/core/data.py f89512ef3ebea85611c5dde6c891b657 lib/core/datatype.py @@ -43,14 +43,14 @@ f89512ef3ebea85611c5dde6c891b657 lib/core/datatype.py fb6be55d21a70765e35549af2484f762 lib/core/__init__.py 18c896b157b03af716542e5fe9233ef9 lib/core/log.py 947f41084e551ff3b7ef7dda2f25ef20 lib/core/optiondict.py -aa327bbad1d25b60cd2a95b4846241eb lib/core/option.py +3d950fa87b0affe86322ebeea67840b3 lib/core/option.py fe370021c6bc99daf44b2bfc0d1effb3 lib/core/patch.py 4b12aa67fbf6c973d12e54cf9cb54ea0 lib/core/profiling.py d5ef43fe3cdd6c2602d7db45651f9ceb lib/core/readlineng.py 7d8a22c582ad201f65b73225e4456170 lib/core/replication.py 3179d34f371e0295dd4604568fb30bcd lib/core/revision.py d6269c55789f78cf707e09a0f5b45443 lib/core/session.py -c5129be9a3bf208a709866d00fb71a29 lib/core/settings.py +abff68fd8e863af65ce39b56d460a173 lib/core/settings.py 4483b4a5b601d8f1c4281071dff21ecc lib/core/shell.py 10fd19b0716ed261e6d04f311f6f527c lib/core/subprocessng.py d9483455ff80d33a55db46ae2fa34a05 lib/core/target.py