proper fix related to the last commit

This commit is contained in:
Miroslav Stampar 2011-06-01 23:00:18 +00:00
parent fd57aae779
commit 8aa5625cd0
3 changed files with 11 additions and 5 deletions

View File

@ -440,7 +440,7 @@ def checkSqlInjection(place, parameter, value):
if not isinstance(dValue, list): if not isinstance(dValue, list):
injection.dbms = Backend.setDbms(dValue) injection.dbms = Backend.setDbms(dValue)
else: else:
Backend.forceDbms(dValue[0]) Backend.forceDbms(dValue[0], True)
elif dKey == "dbms_version" and injection.dbms_version is None: elif dKey == "dbms_version" and injection.dbms_version is None:
injection.dbms_version = Backend.setVersion(dValue) injection.dbms_version = Backend.setVersion(dValue)
elif dKey == "os" and injection.os is None: elif dKey == "os" and injection.os is None:
@ -497,6 +497,8 @@ def checkSqlInjection(place, parameter, value):
# Reset forced back-end DBMS value # Reset forced back-end DBMS value
Backend.flushForcedDbms() Backend.flushForcedDbms()
Backend.flushForcedDbms(True)
# Return the injection object # Return the injection object
if injection.place is not None and injection.parameter is not None: if injection.place is not None and injection.parameter is not None:
injection = checkFalsePositives(injection) injection = checkFalsePositives(injection)

View File

@ -297,12 +297,15 @@ class Backend:
logger.error("invalid format of versionsList") logger.error("invalid format of versionsList")
@staticmethod @staticmethod
def forceDbms(dbms): def forceDbms(dbms, sticky=False):
kb.misc.forcedDbms = aliasToDbmsEnum(dbms) if not kb.misc.stickyFlag:
kb.misc.forcedDbms = aliasToDbmsEnum(dbms)
kb.misc.stickyFlag = sticky
@staticmethod @staticmethod
def flushForcedDbms(): def flushForcedDbms(force=False):
kb.misc.forcedDbms = None if not kb.misc.stickyFlag or force:
kb.misc.forcedDbms = None
@staticmethod @staticmethod
def setOs(os): def setOs(os):

View File

@ -1403,6 +1403,7 @@ def __setKnowledgeBaseAttributes(flushAll=True):
kb.misc.space = ":%s:" % randomStr(length=1, lowercase=True) kb.misc.space = ":%s:" % randomStr(length=1, lowercase=True)
kb.misc.dollar = ":%s:" % randomStr(length=1, lowercase=True) kb.misc.dollar = ":%s:" % randomStr(length=1, lowercase=True)
kb.misc.forcedDbms = None kb.misc.forcedDbms = None
kb.misc.stickyFlag = False
if flushAll: if flushAll:
kb.keywords = set(getFileItems(paths.SQL_KEYWORDS)) kb.keywords = set(getFileItems(paths.SQL_KEYWORDS))