implemented suppressResumeInfo mechanism (huge slowdown on large tables)

This commit is contained in:
Miroslav Stampar
2011-04-22 19:58:10 +00:00
parent 493b9adf8e
commit f88aa4b165
5 changed files with 83 additions and 58 deletions

View File

@@ -34,6 +34,7 @@ from lib.core.enums import PAYLOAD
from lib.core.exception import sqlmapConnectionException
from lib.core.exception import sqlmapSyntaxException
from lib.core.settings import FROM_TABLE
from lib.core.settings import TURN_OFF_RESUME_INFO_LIMIT
from lib.core.unescaper import unescaper
from lib.request.connect import Connect as Request
from lib.utils.resume import resume
@@ -246,6 +247,12 @@ def unionUse(expression, unpack=True, dump=False):
logger.info(infoMsg)
try:
if stopLimit > TURN_OFF_RESUME_INFO_LIMIT:
kb.suppressResumeInfo = True
infoMsg = "suppressing resume console info because of "
infoMsg += "large number of rows (possible slowdown)"
logger.info(infoMsg)
for num in xrange(startLimit, stopLimit):
if Backend.getIdentifiedDbms() in (DBMS.MSSQL, DBMS.SYBASE):
field = expressionFieldsList[0]
@@ -284,6 +291,9 @@ def unionUse(expression, unpack=True, dump=False):
errMsg += "'%s'" % e
logger.critical(errMsg)
finally:
kb.suppressResumeInfo = False
if not value:
value = __oneShotUnionUse(expression, unpack)