update regarding expectingNone in fingerprinting mode to cancel drop down to other techniques available

This commit is contained in:
Miroslav Stampar
2010-12-11 17:55:28 +00:00
parent e32fa9df43
commit e6c66fa37c
10 changed files with 43 additions and 49 deletions

View File

@@ -83,7 +83,7 @@ class Fingerprint(GenericFingerprint):
version, checks = table[i]
failed = False
check = checks[randomRange(0,len(checks)-1)].replace("%d", getUnicode(randomRange(1,100)))
result = inject.checkBooleanExpression(check)
result = inject.checkBooleanExpression(check, expectingNone=True)
if result:
retVal = version
else:
@@ -97,7 +97,7 @@ class Fingerprint(GenericFingerprint):
def __dialectCheck(self):
retVal = None
if kb.dbms:
result = inject.checkBooleanExpression("EXISTS(SELECT CURRENT_DATE FROM RDB$DATABASE)")
result = inject.checkBooleanExpression("EXISTS(SELECT CURRENT_DATE FROM RDB$DATABASE)", expectingNone=True)
retVal = "dialect 3" if result else "dialect 1"
return retVal
@@ -114,13 +114,13 @@ class Fingerprint(GenericFingerprint):
logger.info(logMsg)
randInt = randomInt()
result = inject.checkBooleanExpression("EXISTS(SELECT * FROM RDB$DATABASE WHERE %d=%d)" % (randInt, randInt))
result = inject.checkBooleanExpression("EXISTS(SELECT * FROM RDB$DATABASE WHERE %d=%d)" % (randInt, randInt), expectingNone=True)
if result:
logMsg = "confirming Firebird"
logger.info(logMsg)
result = inject.checkBooleanExpression("EXISTS(SELECT CURRENT_USER FROM RDB$DATABASE)")
result = inject.checkBooleanExpression("EXISTS(SELECT CURRENT_USER FROM RDB$DATABASE)", expectingNone=True)
if not result:
warnMsg = "the back-end DBMS is not Firebird"