minor optimization and refactoring

This commit is contained in:
Miroslav Stampar 2011-07-25 20:17:44 +00:00
parent 0a7a648694
commit 5770c08784
5 changed files with 19 additions and 20 deletions

View File

@ -384,7 +384,7 @@ IDS_WAF_CHECK_PAYLOAD = "AND 1=1 UNION ALL SELECT 1,2,3,table_name FROM informat
ROTATING_CHARS = ('\\', '|', '|', '/', '-')
# Chunk length (in items) used by BigArray objects (only last chunk and cached one are held in memory)
BIGARRAY_CHUNK_LENGTH = 5000
BIGARRAY_CHUNK_LENGTH = 4096
# Only console display last n table rows
TRIM_STDOUT_DUMP_SIZE = 256
TRIM_STDOUT_DUMP_SIZE = 1024

View File

@ -320,8 +320,8 @@ def errorUse(expression, expected=None, resumeValue=True, dump=False):
stopLimit = 1
threadData = getCurrentThreadData()
threadData.shared.limits = range(startLimit, stopLimit)
numThreads = min(conf.threads, len(threadData.shared.limits))
threadData.shared.limits = iter(xrange(startLimit, stopLimit))
numThreads = min(conf.threads, (stopLimit - startLimit))
threadData.shared.outputs = BigArray()
if stopLimit > TURN_OFF_RESUME_INFO_LIMIT:
@ -340,13 +340,12 @@ def errorUse(expression, expected=None, resumeValue=True, dump=False):
while kb.threadContinue:
kb.locks.limits.acquire()
if threadData.shared.limits:
num = threadData.shared.limits[-1]
del threadData.shared.limits[-1]
kb.locks.limits.release()
else:
kb.locks.limits.release()
try:
num = threadData.shared.limits.next()
except StopIteration:
break
finally:
kb.locks.limits.release()
output = __errorFields(expression, expressionFields, expressionFieldsList, expected, num, resumeValue)

View File

@ -261,8 +261,8 @@ def unionUse(expression, unpack=True, dump=False):
stopLimit = 1
threadData = getCurrentThreadData()
threadData.shared.limits = range(startLimit, stopLimit)
numThreads = min(conf.threads, len(threadData.shared.limits))
threadData.shared.limits = iter(xrange(startLimit, stopLimit))
numThreads = min(conf.threads, (stopLimit - startLimit))
threadData.shared.value = BigArray()
if stopLimit > TURN_OFF_RESUME_INFO_LIMIT:
@ -281,13 +281,12 @@ def unionUse(expression, unpack=True, dump=False):
while kb.threadContinue:
kb.locks.limits.acquire()
if threadData.shared.limits:
num = threadData.shared.limits[-1]
del threadData.shared.limits[-1]
kb.locks.limits.release()
else:
kb.locks.limits.release()
try:
num = threadData.shared.limits.next()
except StopIteration:
break
finally:
kb.locks.limits.release()
if Backend.getIdentifiedDbms() in (DBMS.MSSQL, DBMS.SYBASE):
field = expressionFieldsList[0]

View File

@ -266,7 +266,7 @@ def attackDumpedTable():
colUser = column
break
for i in range(count):
for i in xrange(count):
for column in columns:
if column == colUser or column == '__infos__':
continue

View File

@ -130,7 +130,8 @@ def main():
kb.threadException = True
# Reference: http://stackoverflow.com/questions/1635080/terminate-a-multi-thread-python-program
os._exit(0)
if conf.threads > 1:
os._exit(0)
if __name__ == "__main__":
main()