Potential patch for #2847

This commit is contained in:
Miroslav Stampar
2017-12-24 23:54:43 +01:00
parent cad6cfe6a6
commit bc1fbc5a58
3 changed files with 8 additions and 11 deletions

View File

@@ -5,6 +5,8 @@ Copyright (c) 2006-2017 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""
import hashlib
def cachedmethod(f, cache={}):
"""
Method with a cached content
@@ -13,14 +15,9 @@ def cachedmethod(f, cache={}):
"""
def _(*args, **kwargs):
try:
key = hash((f, tuple(args), frozenset(kwargs.items())))
if key not in cache:
cache[key] = f(*args, **kwargs)
except:
key = hash("".join(str(_) for _ in (f, args, kwargs)))
if key not in cache:
cache[key] = f(*args, **kwargs)
key = int(hashlib.md5("".join(str(_) for _ in (f, args, kwargs))).hexdigest()[:8], 16)
if key not in cache:
cache[key] = f(*args, **kwargs)
return cache[key]