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

Skip to content

Commit 849baba

Browse files
committed
Minor patch for too fast Ctrl-C(-ers)
1 parent 24d95ab commit 849baba

1 file changed

Lines changed: 48 additions & 30 deletions

File tree

sqlmap.py

Lines changed: 48 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,10 @@ def main():
111111

112112
except SqlmapUserQuitException:
113113
errMsg = "user quit"
114-
logger.error(errMsg)
114+
try:
115+
logger.error(errMsg)
116+
except KeyboardInterrupt:
117+
pass
115118

116119
except (SqlmapSilentQuitException, bdb.BdbQuit):
117120
pass
@@ -121,18 +124,30 @@ def main():
121124

122125
except SqlmapBaseException as ex:
123126
errMsg = getSafeExString(ex)
124-
logger.critical(errMsg)
127+
try:
128+
logger.critical(errMsg)
129+
except KeyboardInterrupt:
130+
pass
131+
125132
raise SystemExit
126133

127134
except KeyboardInterrupt:
128135
print
136+
129137
errMsg = "user aborted"
130-
logger.error(errMsg)
138+
try:
139+
logger.error(errMsg)
140+
except KeyboardInterrupt:
141+
pass
131142

132143
except EOFError:
133144
print
134145
errMsg = "exit"
135-
logger.error(errMsg)
146+
147+
try:
148+
logger.error(errMsg)
149+
except KeyboardInterrupt:
150+
pass
136151

137152
except SystemExit:
138153
pass
@@ -142,32 +157,35 @@ def main():
142157
errMsg = unhandledExceptionMessage()
143158
excMsg = traceback.format_exc()
144159

145-
if any(_ in excMsg for _ in ("No space left", "Disk quota exceeded")):
146-
errMsg = "no space left on output device"
147-
logger.error(errMsg)
148-
raise SystemExit
149-
150-
elif "bad marshal data (unknown type code)" in excMsg:
151-
match = re.search(r"\s*(.+)\s+ValueError", excMsg)
152-
errMsg = "one of your .pyc files are corrupted%s" % (" ('%s')" % match.group(1) if match else "")
153-
errMsg += ". Please delete .pyc files on your system to fix the problem"
154-
logger.error(errMsg)
155-
raise SystemExit
156-
157-
for match in re.finditer(r'File "(.+?)", line', excMsg):
158-
file_ = match.group(1)
159-
file_ = os.path.relpath(file_, os.path.dirname(__file__))
160-
file_ = file_.replace("\\", '/')
161-
file_ = re.sub(r"\.\./", '/', file_).lstrip('/')
162-
excMsg = excMsg.replace(match.group(1), file_)
163-
164-
errMsg = maskSensitiveData(errMsg)
165-
excMsg = maskSensitiveData(excMsg)
166-
167-
logger.critical(errMsg)
168-
kb.stickyLevel = logging.CRITICAL
169-
dataToStdout(excMsg)
170-
createGithubIssue(errMsg, excMsg)
160+
try:
161+
if any(_ in excMsg for _ in ("No space left", "Disk quota exceeded")):
162+
errMsg = "no space left on output device"
163+
logger.error(errMsg)
164+
raise SystemExit
165+
166+
elif "bad marshal data (unknown type code)" in excMsg:
167+
match = re.search(r"\s*(.+)\s+ValueError", excMsg)
168+
errMsg = "one of your .pyc files are corrupted%s" % (" ('%s')" % match.group(1) if match else "")
169+
errMsg += ". Please delete .pyc files on your system to fix the problem"
170+
logger.error(errMsg)
171+
raise SystemExit
172+
173+
for match in re.finditer(r'File "(.+?)", line', excMsg):
174+
file_ = match.group(1)
175+
file_ = os.path.relpath(file_, os.path.dirname(__file__))
176+
file_ = file_.replace("\\", '/')
177+
file_ = re.sub(r"\.\./", '/', file_).lstrip('/')
178+
excMsg = excMsg.replace(match.group(1), file_)
179+
180+
errMsg = maskSensitiveData(errMsg)
181+
excMsg = maskSensitiveData(excMsg)
182+
183+
logger.critical(errMsg)
184+
kb.stickyLevel = logging.CRITICAL
185+
dataToStdout(excMsg)
186+
createGithubIssue(errMsg, excMsg)
187+
except KeyboardInterrupt:
188+
pass
171189

172190
finally:
173191
if conf.get("showTime"):

0 commit comments

Comments
 (0)