diff --git a/lib/core/decorators.py b/lib/core/decorators.py index d3c584f45..9a942f4b7 100644 --- a/lib/core/decorators.py +++ b/lib/core/decorators.py @@ -61,10 +61,11 @@ def cachedmethod(f): key = args with lock: - try: - return cache[key] - except KeyError: # Note: single lookup, as an entry can get evicted in between (unlocked on Python 3) - pass + if key in cache: + try: + return cache[key] + except KeyError: # Note: evicted in between (unlocked on Python 3) + pass except TypeError: # Note: fallback (slow-path) for unhashable arguments @@ -75,10 +76,11 @@ def cachedmethod(f): key = (_FROZEN_KEY_MARKER, _freeze(args)) with lock: - try: - return cache[key] - except KeyError: - pass + if key in cache: + try: + return cache[key] + except KeyError: + pass except TypeError: # Note: genuinely uncacheable arguments; skip caching altogether return f(*args, **kwargs) diff --git a/lib/core/settings.py b/lib/core/settings.py index ec1d90f92..166194b23 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -19,7 +19,7 @@ from lib.core.enums import OS from thirdparty import six # sqlmap version (...) -VERSION = "1.10.10.26" +VERSION = "1.10.10.27" 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)