about summary refs log tree commit diff stats
path: root/miasm2/core/cpu.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2016-01-31 21:09:08 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2016-01-31 22:27:00 +0100
commit6b032f4db67b15a16a242db1fbea5ef5dceb79c2 (patch)
treebaa728f3a2abb7b22fe4ee801f95820a7c565550 /miasm2/core/cpu.py
parent25d2ede9058607df0cfd2ed6a44f588cabb9d962 (diff)
downloadmiasm-6b032f4db67b15a16a242db1fbea5ef5dceb79c2.tar.gz
miasm-6b032f4db67b15a16a242db1fbea5ef5dceb79c2.zip
Core/cpu: fix pre_dis atomic
Diffstat (limited to 'miasm2/core/cpu.py')
-rw-r--r--miasm2/core/cpu.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/miasm2/core/cpu.py b/miasm2/core/cpu.py
index 8195f920..050648f5 100644
--- a/miasm2/core/cpu.py
+++ b/miasm2/core/cpu.py
@@ -1096,8 +1096,12 @@ class cls_mn(object):
         bs_o.enter_atomic_mode()
 
         offset_o = offset
-        pre_dis_info, bs, mode, offset, prefix_len = cls.pre_dis(
-            bs_o, mode_o, offset)
+        try:
+            pre_dis_info, bs, mode, offset, prefix_len = cls.pre_dis(
+                bs_o, mode_o, offset)
+        except:
+            bs_o.leave_atomic_mode()
+            raise
         candidates = cls.guess_mnemo(bs, mode, pre_dis_info, offset)
         if not candidates:
             bs_o.leave_atomic_mode()