From cad8f61d55217762a90d4cf00d3fd2d46bc76e26 Mon Sep 17 00:00:00 2001 From: Bernardo Damele Date: Wed, 31 Mar 2010 15:31:11 +0000 Subject: [PATCH] Force pymssql to version >= 1.0.2 --- lib/core/common.py | 7 +++++++ plugins/dbms/mssqlserver/connector.py | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/core/common.py b/lib/core/common.py index 755cbe84d..77db14ed5 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -651,6 +651,13 @@ def parseTargetDirect(): if dbmsName == "Microsoft SQL Server": import _mssql import pymssql + + if not hasattr(pymssql, "__version__") or pymssql.__version__ < "1.0.2": + errMsg = "pymssql library on your system must be " + errMsg += "version 1.0.2 to work, get it from " + errMsg += "http://sourceforge.net/projects/pymssql/files/pymssql/1.0.2/" + raise sqlmapMissingDependence, errMsg + elif dbmsName == "MySQL": import MySQLdb elif dbmsName == "PostgreSQL": diff --git a/plugins/dbms/mssqlserver/connector.py b/plugins/dbms/mssqlserver/connector.py index 3b5574e29..e17abe93a 100644 --- a/plugins/dbms/mssqlserver/connector.py +++ b/plugins/dbms/mssqlserver/connector.py @@ -43,6 +43,9 @@ class Connector(GenericConnector): License: LGPL Possible connectors: http://wiki.python.org/moin/SQL%20Server + + Important note: pymssql library on your system MUST be version 1.0.2 + to work, get it from http://sourceforge.net/projects/pymssql/files/pymssql/1.0.2/ """ def __init__(self): @@ -79,6 +82,10 @@ class Connector(GenericConnector): def select(self, query): self.execute(query) value = self.fetchall() - self.connector.commit() + + try: + self.connector.commit() + except pymssql.OperationalError: + pass return value