about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--miasm2/core/cpu.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/miasm2/core/cpu.py b/miasm2/core/cpu.py
index 3502397d..aa94773f 100644
--- a/miasm2/core/cpu.py
+++ b/miasm2/core/cpu.py
@@ -1169,7 +1169,11 @@ class cls_mn(object):
                     if bs_l * 8 - offset_b < l:
                         getok = False
                         break
-                    bv = cls.getbits(bs, mode, offset_b, l)
+                    try:
+                        bv = cls.getbits(bs, mode, offset_b, l)
+                    except:
+                        bs_o.leave_atomic_mode()
+                        raise
                     offset_b += l
                     if not f.fname in fname_values:
                         fname_values[f.fname] = bv