55
66from smda .cil .CilDisassembler import CilDisassembler
77from smda .common .BinaryInfo import BinaryInfo
8+ from smda .common .ExceptionHandling import reraise_non_operational_exception
89from smda .common .labelprovider .GoLabelProvider import GoSymbolProvider
910from smda .common .SmdaReport import SmdaReport
1011from smda .dalvik .DalvikDisassembler import DalvikDisassembler
@@ -141,9 +142,11 @@ def disassembleFile(self, file_path, pdb_path=""):
141142 if self .config .STORE_BUFFER :
142143 smda_report .buffer = binary_info .binary
143144 except Exception as exc :
144- LOGGER .error ("An error occurred while disassembling file." )
145- # print("-> an error occured (", str(exc), ").")
146- smda_report = self ._createErrorReport (start , exc )
145+ smda_report = self ._handleDisassemblyException (
146+ start ,
147+ exc ,
148+ "An error occurred while disassembling file." ,
149+ )
147150 return smda_report
148151
149152 def disassembleUnmappedBuffer (self , file_content ):
@@ -160,9 +163,11 @@ def disassembleUnmappedBuffer(self, file_content):
160163 if self .config .STORE_BUFFER :
161164 smda_report .buffer = file_content
162165 except Exception as exc :
163- LOGGER .error ("An error occurred while disassembling unmapped buffer." )
164- # print("-> an error occured (", str(exc), ").")
165- smda_report = self ._createErrorReport (start , exc )
166+ smda_report = self ._handleDisassemblyException (
167+ start ,
168+ exc ,
169+ "An error occurred while disassembling unmapped buffer." ,
170+ )
166171 return smda_report
167172
168173 def disassembleBuffer (
@@ -206,9 +211,11 @@ def disassembleBuffer(
206211 if self .config .STORE_BUFFER :
207212 smda_report .buffer = file_content
208213 except Exception as exc :
209- LOGGER .error ("An error occurred while disassembling buffer." )
210- # print("-> an error occured (", str(exc), ").")
211- smda_report = self ._createErrorReport (start , exc )
214+ smda_report = self ._handleDisassemblyException (
215+ start ,
216+ exc ,
217+ "An error occurred while disassembling buffer." ,
218+ )
212219 return smda_report
213220
214221 def _disassemble (self , binary_info , timeout = 0 ):
@@ -228,3 +235,8 @@ def _createErrorReport(self, start, exception):
228235 report .execution_time = self ._getDurationInSeconds (start , datetime .datetime .now (datetime .timezone .utc ))
229236 report .message = traceback .format_exc ()
230237 return report
238+
239+ def _handleDisassemblyException (self , start , exception , log_message ):
240+ reraise_non_operational_exception (exception )
241+ LOGGER .error (log_message )
242+ return self ._createErrorReport (start , exception )
0 commit comments