@@ -99,49 +99,14 @@ def checkDbms(self):
9999 infoMsg = "confirming Microsoft SQL Server"
100100 logger .info (infoMsg )
101101
102- for version in (0 , 5 , 8 ):
103- randInt = randomInt ()
104- check = "%d=(SELECT (CASE WHEN (( SUBSTRING((@@VERSION), 22, 1)=2 AND SUBSTRING((@@VERSION), 25, 1)=%d ) OR ( SUBSTRING((@@VERSION), 23, 1)=2 AND SUBSTRING((@@VERSION), 26, 1)=%d )) THEN %d ELSE %d END))" % (randInt , version , version , randInt , (randInt + 1 ))
105-
106- if conf .direct :
107- check = "SELECT 1 WHERE " + check
108-
102+ for version , check in [\
103+ ("2000" , "HOST_NAME()=HOST_NAME()" ),\
104+ ("2005" , "XACT_STATE()=XACT_STATE()" ),\
105+ ("2008" , "SYSDATETIME()>0" ) ]:
109106 result = inject .checkBooleanExpression (check )
110107
111108 if result :
112- if version == 8 :
113- kb .dbmsVersion = ["2008" ]
114-
115- break
116-
117- elif version == 5 :
118- kb .dbmsVersion = ["2005" ]
119-
120- break
121-
122- elif version == 0 :
123- kb .dbmsVersion = ["2000" ]
124-
125- break
126-
127- else :
128- check = "%d=(SELECT (CASE WHEN (SUBSTRING((@@VERSION), 22, 1)=7) THEN %d ELSE %d END))" % (randInt , randInt , (randInt + 1 ))
129- result = inject .checkBooleanExpression (check )
130-
131- if result :
132- kb .dbmsVersion = ["7.0" ]
133-
134- break
135-
136- if not kb .dbmsVersion or kb .dbmsVersion == [UNKNOWN_DBMS_VERSION ]:
137- for version , check in [\
138- ("2000" , "HOST_NAME()=HOST_NAME()" ),\
139- ("2005" , "XACT_STATE()=XACT_STATE()" ),\
140- ("2008" , "SYSDATETIME()>0" ) ]:
141- result = inject .checkBooleanExpression (check )
142-
143- if result :
144- kb .dbmsVersion = [version ]
109+ kb .dbmsVersion = [version ]
145110
146111 if kb .dbmsVersion :
147112 setDbms ("%s %s" % (DBMS .MSSQL , kb .dbmsVersion [0 ]))
0 commit comments