Skip to content

Commit f31ea1e

Browse files
committed
Minor improvement of BigArray's iter
1 parent 657eb46 commit f31ea1e

3 files changed

Lines changed: 26 additions & 8 deletions

File tree

data/txt/sha256sums.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ e376093d4f6e42ee38b050af329179df9c1c136b7667b2f1cb559f5d4b69ebd9 lib/controller
167167
56e03690c1b783699c9f30cb2f8cc743d3716aba8137e6b253b21d1dd31a4314 lib/controller/handler.py
168168
1966ca704961fb987ab757f0a4afddbf841d1a880631b701487c75cef63d60c3 lib/controller/__init__.py
169169
2a96190ced25d8929861b13866101812fcadf5cac23dd1dd4b29b1a915918769 lib/core/agent.py
170-
1da4ec9cd9b67c8b54e4a3d314f8237d58778d8f3a00bc26a1e0540294dca30f lib/core/bigarray.py
170+
3f13b3856fb5c51a392bfe90e8380b44ec74e7df82d50940e28536a1a5e513a6 lib/core/bigarray.py
171171
af24159b8ca5b8fe5e13cdfdedc2a758a2f4883361a601e0a550127cff368b3a lib/core/common.py
172172
a6397b10de7ae7c56ed6b0fa3b3c58eb7a9dbede61bf93d786e73258175c981e lib/core/compat.py
173173
a9997e97ebe88e0bf7efcf21e878bc5f62c72348e5aba18f64d6861390a4dcf2 lib/core/convert.py
@@ -189,7 +189,7 @@ a033f92d136c707a25927c2383125ddb004d4283db62c004dcd67c3fc242bb1c lib/core/dump.
189189
48797d6c34dd9bb8a53f7f3794c85f4288d82a9a1d6be7fcf317d388cb20d4b3 lib/core/replication.py
190190
3574639db4942d16a2dc0a2f04bb7c0913c40c3862b54d34c44075a760e0c194 lib/core/revision.py
191191
888daba83fd4a34e9503fe21f01fef4cc730e5cde871b1d40e15d4cbc847d56c lib/core/session.py
192-
7e7d27e3e472e55c3938d7041bab589b29f425548f11f93c939b249da36bce98 lib/core/settings.py
192+
0072bbc61a2a9129b25736f97ccd2a326ca977ef707f8a9dd8db67b41f7553a0 lib/core/settings.py
193193
cd5a66deee8963ba8e7e9af3dd36eb5e8127d4d68698811c29e789655f507f82 lib/core/shell.py
194194
bcb5d8090d5e3e0ef2a586ba09ba80eef0c6d51feb0f611ed25299fbb254f725 lib/core/subprocessng.py
195195
d35650179816193164a5f177102f18379dfbe6bb6d40fbb67b78d907b41c8038 lib/core/target.py

lib/core/bigarray.py

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -305,11 +305,29 @@ def __repr__(self):
305305
return "%s%s" % ("..." if len(self.chunks) > 1 else "", self.chunks[-1].__repr__())
306306

307307
def __iter__(self):
308-
for i in xrange(len(self)):
309-
try:
310-
yield self[i]
311-
except IndexError:
312-
break
308+
with self._lock:
309+
chunks = list(self.chunks)
310+
cache_index = self.cache.index if isinstance(self.cache, Cache) else None
311+
cache_data = self.cache.data if isinstance(self.cache, Cache) else None
312+
313+
for idx, chunk in enumerate(chunks):
314+
if isinstance(chunk, list):
315+
for item in chunk:
316+
yield item
317+
else:
318+
try:
319+
if cache_index == idx and cache_data is not None:
320+
data = cache_data
321+
else:
322+
with open(chunk, "rb") as f:
323+
data = pickle.loads(zlib.decompress(f.read()))
324+
except Exception as ex:
325+
errMsg = "exception occurred while retrieving data "
326+
errMsg += "from a temporary file ('%s')" % ex
327+
raise SqlmapSystemException(errMsg)
328+
329+
for item in data:
330+
yield item
313331

314332
def __len__(self):
315333
return len(self.chunks[-1]) if len(self.chunks) == 1 else (len(self.chunks) - 1) * self.chunk_length + len(self.chunks[-1])

lib/core/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from thirdparty import six
2020

2121
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
22-
VERSION = "1.10.1.57"
22+
VERSION = "1.10.1.58"
2323
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
2424
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
2525
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)

0 commit comments

Comments
 (0)