Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 050700f

Browse files
committed
Fixes #4237
1 parent 31bf1fc commit 050700f

2 files changed

Lines changed: 12 additions & 9 deletions

File tree

lib/core/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from thirdparty.six import unichr as _unichr
1919

2020
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
21-
VERSION = "1.4.6.13"
21+
VERSION = "1.4.6.14"
2222
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
2323
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
2424
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)

lib/utils/sqlalchemy.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import imp
99
import logging
1010
import os
11+
import re
1112
import sys
1213
import traceback
1314
import warnings
@@ -41,7 +42,12 @@ def getSafeExString(ex, encoding=None): # Cross-referenced function
4142
class SQLAlchemy(GenericConnector):
4243
def __init__(self, dialect=None):
4344
GenericConnector.__init__(self)
45+
4446
self.dialect = dialect
47+
self.address = conf.direct
48+
49+
if self.dialect:
50+
self.address = re.sub(r"\A.+://", "%s://" % self.dialect, self.address)
4551

4652
def connect(self):
4753
if _sqlalchemy:
@@ -52,18 +58,15 @@ def connect(self):
5258
if not os.path.exists(self.db):
5359
raise SqlmapFilePathException("the provided database file '%s' does not exist" % self.db)
5460

55-
_ = conf.direct.split("//", 1)
56-
conf.direct = "%s////%s" % (_[0], os.path.abspath(self.db))
57-
58-
if self.dialect:
59-
conf.direct = conf.direct.replace(conf.dbms, self.dialect, 1)
61+
_ = self.address.split("//", 1)
62+
self.address = "%s////%s" % (_[0], os.path.abspath(self.db))
6063

6164
if self.dialect == "sqlite":
62-
engine = _sqlalchemy.create_engine(conf.direct, connect_args={"check_same_thread": False})
65+
engine = _sqlalchemy.create_engine(self.address, connect_args={"check_same_thread": False})
6366
elif self.dialect == "oracle":
64-
engine = _sqlalchemy.create_engine(conf.direct)
67+
engine = _sqlalchemy.create_engine(self.address)
6568
else:
66-
engine = _sqlalchemy.create_engine(conf.direct, connect_args={})
69+
engine = _sqlalchemy.create_engine(self.address, connect_args={})
6770

6871
self.connector = engine.connect()
6972
except (TypeError, ValueError):

0 commit comments

Comments
 (0)