Minor patch for too fast Ctrl-C(-ers)

This commit is contained in:
Miroslav Stampar 2015-12-28 11:39:46 +01:00
parent 24d95ab6b3
commit 849babaf8d

View File

@ -111,7 +111,10 @@ def main():
except SqlmapUserQuitException: except SqlmapUserQuitException:
errMsg = "user quit" errMsg = "user quit"
logger.error(errMsg) try:
logger.error(errMsg)
except KeyboardInterrupt:
pass
except (SqlmapSilentQuitException, bdb.BdbQuit): except (SqlmapSilentQuitException, bdb.BdbQuit):
pass pass
@ -121,18 +124,30 @@ def main():
except SqlmapBaseException as ex: except SqlmapBaseException as ex:
errMsg = getSafeExString(ex) errMsg = getSafeExString(ex)
logger.critical(errMsg) try:
logger.critical(errMsg)
except KeyboardInterrupt:
pass
raise SystemExit raise SystemExit
except KeyboardInterrupt: except KeyboardInterrupt:
print print
errMsg = "user aborted" errMsg = "user aborted"
logger.error(errMsg) try:
logger.error(errMsg)
except KeyboardInterrupt:
pass
except EOFError: except EOFError:
print print
errMsg = "exit" errMsg = "exit"
logger.error(errMsg)
try:
logger.error(errMsg)
except KeyboardInterrupt:
pass
except SystemExit: except SystemExit:
pass pass
@ -142,32 +157,35 @@ def main():
errMsg = unhandledExceptionMessage() errMsg = unhandledExceptionMessage()
excMsg = traceback.format_exc() excMsg = traceback.format_exc()
if any(_ in excMsg for _ in ("No space left", "Disk quota exceeded")): try:
errMsg = "no space left on output device" if any(_ in excMsg for _ in ("No space left", "Disk quota exceeded")):
logger.error(errMsg) errMsg = "no space left on output device"
raise SystemExit logger.error(errMsg)
raise SystemExit
elif "bad marshal data (unknown type code)" in excMsg: elif "bad marshal data (unknown type code)" in excMsg:
match = re.search(r"\s*(.+)\s+ValueError", excMsg) match = re.search(r"\s*(.+)\s+ValueError", excMsg)
errMsg = "one of your .pyc files are corrupted%s" % (" ('%s')" % match.group(1) if match else "") errMsg = "one of your .pyc files are corrupted%s" % (" ('%s')" % match.group(1) if match else "")
errMsg += ". Please delete .pyc files on your system to fix the problem" errMsg += ". Please delete .pyc files on your system to fix the problem"
logger.error(errMsg) logger.error(errMsg)
raise SystemExit raise SystemExit
for match in re.finditer(r'File "(.+?)", line', excMsg): for match in re.finditer(r'File "(.+?)", line', excMsg):
file_ = match.group(1) file_ = match.group(1)
file_ = os.path.relpath(file_, os.path.dirname(__file__)) file_ = os.path.relpath(file_, os.path.dirname(__file__))
file_ = file_.replace("\\", '/') file_ = file_.replace("\\", '/')
file_ = re.sub(r"\.\./", '/', file_).lstrip('/') file_ = re.sub(r"\.\./", '/', file_).lstrip('/')
excMsg = excMsg.replace(match.group(1), file_) excMsg = excMsg.replace(match.group(1), file_)
errMsg = maskSensitiveData(errMsg) errMsg = maskSensitiveData(errMsg)
excMsg = maskSensitiveData(excMsg) excMsg = maskSensitiveData(excMsg)
logger.critical(errMsg) logger.critical(errMsg)
kb.stickyLevel = logging.CRITICAL kb.stickyLevel = logging.CRITICAL
dataToStdout(excMsg) dataToStdout(excMsg)
createGithubIssue(errMsg, excMsg) createGithubIssue(errMsg, excMsg)
except KeyboardInterrupt:
pass
finally: finally:
if conf.get("showTime"): if conf.get("showTime"):