about summary refs log tree commit diff stats
path: root/miasm2/core/cpu.py
diff options
context:
space:
mode:
authorAjax <commial@gmail.com>2016-01-08 16:43:25 +0100
committerAjax <commial@gmail.com>2016-01-08 16:43:25 +0100
commit870b4c899e32455c34186cf521d12a18b8070db1 (patch)
tree2a911e0415add4899bff13df118f600479ab9b07 /miasm2/core/cpu.py
parent44cc82252eb55ab7e1c915780ca8a86e3155f075 (diff)
downloadmiasm-870b4c899e32455c34186cf521d12a18b8070db1.tar.gz
miasm-870b4c899e32455c34186cf521d12a18b8070db1.zip
Cpu: leave atomic mode on disasm Exception
Diffstat (limited to 'miasm2/core/cpu.py')
-rw-r--r--miasm2/core/cpu.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/miasm2/core/cpu.py b/miasm2/core/cpu.py
index f2c4c3b4..48f7e26e 100644
--- a/miasm2/core/cpu.py
+++ b/miasm2/core/cpu.py
@@ -1020,11 +1020,7 @@ class cls_mn(object):
                 else:
                     todo.append((dict(fname_values), (nb, v), offset_b))
 
-        candidates = [c for c in candidates]
-
-        if not candidates:
-            raise Disasm_Exception('cannot disasm (guess) at %X' % offset)
-        return candidates
+        return [c for c in candidates]
 
     def reset_class(self):
         for f in self.fields_order:
@@ -1099,6 +1095,10 @@ class cls_mn(object):
         pre_dis_info, bs, mode, offset, prefix_len = cls.pre_dis(
             bs_o, mode_o, offset)
         candidates = cls.guess_mnemo(bs, mode, pre_dis_info, offset)
+        if not candidates:
+            bs_o.leave_atomic_mode()
+            raise Disasm_Exception('cannot disasm (guess) at %X' % offset)
+
         out = []
         out_c = []
         if hasattr(bs, 'getlen'):