diff --git a/data/txt/sha256sums.txt b/data/txt/sha256sums.txt index 09d55a182..f013144d1 100644 --- a/data/txt/sha256sums.txt +++ b/data/txt/sha256sums.txt @@ -163,7 +163,7 @@ fad6640f60eac8ad1b65895cbccc39154864843a2a0b0f2ac596d3227edcd4f6 lib/controller 1947e6c69fbc2bdce91d2836e5c9c9535e397e9271ae4b4ef922f7a01857df5e lib/controller/handler.py 4608f21a4333c162ab3c266c903fda4793cc5834de30d06affe9b7566dd09811 lib/controller/__init__.py 216c9399853b7454d36dcb552baf9f1169ec7942897ddc46504684325cb6ce00 lib/core/agent.py -a61a74ba17331c419c03bc90d829ba74d183787f39fd902f50198202cb5b26c7 lib/core/bigarray.py +440cbab6161f466158c63f0ee97873254655f670ca990fa26bdd0a6e54c42c2a lib/core/bigarray.py 8920eb3115ecd25933084af986f453362aa55a4bd15bfb9e75673239bd206acc lib/core/common.py d53a8aecab8af8b8da4dc1c74d868f70a38770d34b1fa50cae4532cae7ce1c87 lib/core/compat.py ebe518089733722879f5a13e73020ebe55d46fb7410cacf292ca4ea1d9d1c56a lib/core/convert.py @@ -186,7 +186,7 @@ c4bfb493a03caf84dd362aec7c248097841de804b7413d0e1ecb8a90c8550bc0 lib/core/readl d1bd70c1a55858495c727fbec91e30af267459c8f64d50fabf9e4ee2c007e920 lib/core/replication.py 1d0f80b0193ac5204527bfab4bde1a7aee0f693fd008e86b4b29f606d1ef94f3 lib/core/revision.py d2eb8e4b05ac93551272b3d4abfaf5b9f2d3ac92499a7704c16ed0b4f200db38 lib/core/session.py -37d96cd99b3011c3173ac7ae3992fd3a8aa5caea892e9fd8ab5a1b442dee3aa0 lib/core/settings.py +aa86123af7058e4d98ddaf50c40329c4ebf6b71233f605915ff3a21d34018449 lib/core/settings.py 1c5eab9494eb969bc9ce118a2ea6954690c6851cbe54c18373c723b99734bf09 lib/core/shell.py 4eea6dcf023e41e3c64b210cb5c2efc7ca893b727f5e49d9c924f076bb224053 lib/core/subprocessng.py cdd352e1331c6b535e780f6edea79465cb55af53aa2114dcea0e8bf382e56d1a lib/core/target.py diff --git a/lib/core/bigarray.py b/lib/core/bigarray.py index 8a786d29a..5741b2e61 100644 --- a/lib/core/bigarray.py +++ b/lib/core/bigarray.py @@ -14,6 +14,7 @@ import itertools import os import sys import tempfile +import threading import zlib from lib.core.compat import xrange @@ -74,6 +75,7 @@ class BigArray(list): self.chunk_length = sys.maxsize self.cache = None self.filenames = set() + self._lock = threading.Lock() self._os_remove = os.remove self._size_counter = 0 @@ -95,18 +97,19 @@ class BigArray(list): return self def append(self, value): - self.chunks[-1].append(value) + with self._lock: + self.chunks[-1].append(value) - if self.chunk_length == sys.maxsize: - self._size_counter += _size_of(value) - if self._size_counter >= BIGARRAY_CHUNK_SIZE: - self.chunk_length = len(self.chunks[-1]) - self._size_counter = None + if self.chunk_length == sys.maxsize: + self._size_counter += _size_of(value) + if self._size_counter >= BIGARRAY_CHUNK_SIZE: + self.chunk_length = len(self.chunks[-1]) + self._size_counter = None - if len(self.chunks[-1]) >= self.chunk_length: - filename = self._dump(self.chunks[-1]) - self.chunks[-1] = filename - self.chunks.append([]) + if len(self.chunks[-1]) >= self.chunk_length: + filename = self._dump(self.chunks[-1]) + self.chunks[-1] = filename + self.chunks.append([]) def extend(self, value): for _ in value: diff --git a/lib/core/settings.py b/lib/core/settings.py index 22169d577..b3fcb83c7 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.9.5.19" +VERSION = "1.9.5.20" 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)