Adding exit code (1) in case of sqlmap fail

This commit is contained in:
Miroslav Stampar 2019-04-19 14:36:23 +02:00
parent e7469ab570
commit 9b46540e00
3 changed files with 13 additions and 7 deletions

View File

@ -17,7 +17,7 @@ from lib.core.enums import DBMS_DIRECTORY_NAME
from lib.core.enums import OS
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
VERSION = "1.3.4.31"
VERSION = "1.3.4.32"
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)

View File

@ -10,7 +10,6 @@ import doctest
import os
import re
import shutil
import subprocess
import sys
import tempfile
import threading
@ -54,7 +53,7 @@ def vulnTest():
"""
retVal = True
count, length = 0, 5
count, length = 0, 6
def _thread():
vulnserver.init(quiet=True)
@ -65,6 +64,7 @@ def vulnTest():
thread.start()
for options, checks in (
("--version", ("1.", "#")),
("--flush-session", ("Type: boolean-based blind", "Type: time-based blind", "Type: UNION query", "back-end DBMS: SQLite", "3 columns")),
("--banner --schema --dump -T users --binary-fields=surname --where 'id>3'", ("banner: '3", "INTEGER", "TEXT", "id", "name", "surname", "2 entries", "6E616D6569736E756C6C")),
("--all", ("5 entries", "luther", "blisset", "fluffy", "ming", "NULL", "nameisnull")),
@ -85,6 +85,8 @@ def vulnTest():
else:
logger.error("vuln test final result: FAILED")
return retVal
def smokeTest():
"""
Runs the basic smoke testing of a program

View File

@ -159,13 +159,13 @@ def main():
# Postponed imports (faster start)
if conf.smokeTest:
from lib.core.testing import smokeTest
smokeTest()
os._exitcode = 1 - (smokeTest() or 0)
elif conf.vulnTest:
from lib.core.testing import vulnTest
vulnTest()
os._exitcode = 1 - (vulnTest() or 0)
elif conf.liveTest:
from lib.core.testing import liveTest
liveTest()
os._exitcode = 1 - (liveTest() or 0)
else:
from lib.controller.controller import start
if conf.profile and PY2:
@ -176,6 +176,8 @@ def main():
try:
start()
except Exception as ex:
os._exitcode = 1
if "can't start new thread" in getSafeExString(ex):
errMsg = "unable to start new threads. Please check OS (u)limits"
logger.critical(errMsg)
@ -409,7 +411,9 @@ if __name__ == "__main__":
finally:
# Reference: http://stackoverflow.com/questions/1635080/terminate-a-multi-thread-python-program
if threading.activeCount() > 1:
os._exit(0)
os._exit(getattr(os, "_exitcode", 0))
else:
sys.exit(getattr(os, "_exitcode", 0))
else:
# cancelling postponed imports (because of Travis CI checks)
from lib.controller.controller import start