diff --git a/lib/core/settings.py b/lib/core/settings.py index 35b4ef52b..23c6fd295 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -19,7 +19,7 @@ from lib.core.enums import OS from lib.core.revision import getRevisionNumber # sqlmap version (...) -VERSION = "1.0.8.16" +VERSION = "1.0.8.17" REVISION = getRevisionNumber() TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} diff --git a/lib/utils/api.py b/lib/utils/api.py index 3a640f338..7ed2b83fe 100644 --- a/lib/utils/api.py +++ b/lib/utils/api.py @@ -224,7 +224,7 @@ class StdDbOut(object): # Ignore all non-relevant messages return - output = conf.database_cursor.execute( + output = conf.databaseCursor.execute( "SELECT id, status, value FROM data WHERE taskid = ? AND content_type = ?", (self.taskid, content_type)) @@ -232,25 +232,25 @@ class StdDbOut(object): if status == CONTENT_STATUS.COMPLETE: if len(output) > 0: for index in xrange(len(output)): - conf.database_cursor.execute("DELETE FROM data WHERE id = ?", + conf.databaseCursor.execute("DELETE FROM data WHERE id = ?", (output[index][0],)) - conf.database_cursor.execute("INSERT INTO data VALUES(NULL, ?, ?, ?, ?)", + conf.databaseCursor.execute("INSERT INTO data VALUES(NULL, ?, ?, ?, ?)", (self.taskid, status, content_type, jsonize(value))) if kb.partRun: kb.partRun = None elif status == CONTENT_STATUS.IN_PROGRESS: if len(output) == 0: - conf.database_cursor.execute("INSERT INTO data VALUES(NULL, ?, ?, ?, ?)", + conf.databaseCursor.execute("INSERT INTO data VALUES(NULL, ?, ?, ?, ?)", (self.taskid, status, content_type, jsonize(value))) else: new_value = "%s%s" % (dejsonize(output[0][2]), value) - conf.database_cursor.execute("UPDATE data SET value = ? WHERE id = ?", + conf.databaseCursor.execute("UPDATE data SET value = ? WHERE id = ?", (jsonize(new_value), output[0][0])) else: - conf.database_cursor.execute("INSERT INTO errors VALUES(NULL, ?, ?)", + conf.databaseCursor.execute("INSERT INTO errors VALUES(NULL, ?, ?)", (self.taskid, str(value) if value else "")) def flush(self): @@ -269,7 +269,7 @@ class LogRecorder(logging.StreamHandler): Record emitted events to IPC database for asynchronous I/O communication with the parent process """ - conf.database_cursor.execute("INSERT INTO logs VALUES(NULL, ?, ?, ?, ?)", + conf.databaseCursor.execute("INSERT INTO logs VALUES(NULL, ?, ?, ?, ?)", (conf.taskid, time.strftime("%X"), record.levelname, record.msg % record.args if record.args else record.msg)) @@ -277,8 +277,8 @@ class LogRecorder(logging.StreamHandler): def setRestAPILog(): if hasattr(conf, "api"): try: - conf.database_cursor = Database(conf.database) - conf.database_cursor.connect("client") + conf.databaseCursor = Database(conf.database) + conf.databaseCursor.connect("client") except sqlite3.OperationalError, ex: raise SqlmapConnectionException, "%s ('%s')" % (ex, conf.database) diff --git a/sqlmap.py b/sqlmap.py index a7e643363..8ae722f5e 100755 --- a/sqlmap.py +++ b/sqlmap.py @@ -300,7 +300,7 @@ def main(): if hasattr(conf, "api"): try: - conf.database_cursor.disconnect() + conf.databaseCursor.disconnect() except KeyboardInterrupt: pass @@ -314,10 +314,10 @@ def main(): time.sleep(0.01) except KeyboardInterrupt: pass - - # Reference: http://stackoverflow.com/questions/1635080/terminate-a-multi-thread-python-program - if threading.activeCount() > 1: - os._exit(0) + finally: + # Reference: http://stackoverflow.com/questions/1635080/terminate-a-multi-thread-python-program + if threading.activeCount() > 1: + os._exit(0) if __name__ == "__main__": main() diff --git a/txt/checksum.md5 b/txt/checksum.md5 index f219fd02b..1850404bd 100644 --- a/txt/checksum.md5 +++ b/txt/checksum.md5 @@ -45,7 +45,7 @@ e60456db5380840a586654344003d4e6 lib/core/readlineng.py 5ef56abb8671c2ca6ceecb208258e360 lib/core/replication.py 99a2b496b9d5b546b335653ca801153f lib/core/revision.py 7c15dd2777af4dac2c89cab6df17462e lib/core/session.py -3213c60c98bcb3037a74cbdde92c10a1 lib/core/settings.py +c857eea31beebb5aac5719c2329bbaf3 lib/core/settings.py 7af83e4f18cab6dff5e67840eb65be80 lib/core/shell.py 23657cd7d924e3c6d225719865855827 lib/core/subprocessng.py 0bc2fae1dec18cdd11954b22358293f2 lib/core/target.py @@ -100,7 +100,7 @@ cc9c82cfffd8ee9b25ba3af6284f057e lib/techniques/__init__.py cc9c82cfffd8ee9b25ba3af6284f057e lib/techniques/union/__init__.py f5d6884cdeed28281187c111d3e49e3b lib/techniques/union/test.py 12ce1bb7ee5f1f23f58be12fe9fa8472 lib/techniques/union/use.py -d05be2ba94734e95150a33aec05d3d9b lib/utils/api.py +26c1babc6289fac9056f8b21d10f3bb1 lib/utils/api.py 8cdc8c1e663c3b92a756fb7b02cc3c02 lib/utils/crawler.py 393f8fd1684308213e1d2e6a9d4258c2 lib/utils/deps.py 4dfd3a95e73e806f62372d63bc82511f lib/utils/getch.py @@ -218,7 +218,7 @@ c3cc8b7727161e64ab59f312c33b541a shell/stager.aspx_ 1f7f125f30e0e800beb21e2ebbab18e1 shell/stager.jsp_ 01e3505e796edf19aad6a996101c81c9 shell/stager.php_ 56702e95555adee718b6a11ee7098fd4 sqlmapapi.py -7e80fcefc56426ed780c48556b70a1f0 sqlmap.py +b7b44bffd0fdc4a793427a0fcc674d24 sqlmap.py 1316deb997418507e76221c84ec99946 tamper/apostrophemask.py a6efe8f914c769c52afec703bd73609f tamper/apostrophenullencode.py b1c56983919b69f4f6f0e7929c881e7a tamper/appendnullbyte.py