@@ -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