about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2014-12-07 13:34:06 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2014-12-08 18:44:27 +0100
commit2e16faf6cd32e65d093b90699dfd2658818208c2 (patch)
tree54ba2940bbf6ffbb758df4288cebe2628b38a11d
parent80eadc44c0d287ba01919f05143a1c7dda745d34 (diff)
downloadmiasm-2e16faf6cd32e65d093b90699dfd2658818208c2.tar.gz
miasm-2e16faf6cd32e65d093b90699dfd2658818208c2.zip
Arm: fix empty reglist argument
-rw-r--r--miasm2/arch/arm/arch.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/miasm2/arch/arm/arch.py b/miasm2/arch/arm/arch.py
index 47016d6b..71c0ac47 100644
--- a/miasm2/arch/arm/arch.py
+++ b/miasm2/arch/arm/arch.py
@@ -1142,6 +1142,8 @@ class arm_rlist(m_arg):
         for i in xrange(0x10):
             if 1 << i & v:
                 out.append(gpregs.expr[i])
+        if not out:
+            return False
         e = ExprOp('reglist', *out)
         if self.parent.sbit.value == 1:
             e = ExprOp('sbit', e)
@@ -1286,7 +1288,6 @@ offs_blx = bs(l=24, cls=(arm_offs_blx,), fname="offs")
 
 fix_cond = bs("1111", fname="cond")
 
-
 class arm_immed(m_arg):
     parser = deref
 
@@ -1751,6 +1752,8 @@ class armt_rlist(m_arg):
         for i in xrange(0x10):
             if 1 << i & v:
                 out.append(gpregs.expr[i])
+        if not out:
+            return False
         e = ExprOp('reglist', *out)
         self.expr = e
         return True
@@ -1791,6 +1794,8 @@ class armt_rlist_pclr(armt_rlist):
                 out += [regs_expr[14]]
             else:
                 out += [regs_expr[15]]
+        if not out:
+            return False
         e = ExprOp('reglist', *out)
         self.expr = e
         return True
@@ -2006,6 +2011,8 @@ class armt_gpreg_rm_shift_off(arm_reg):
 
     def decode(self, v):
         v = v & self.lmask
+        if v >= len(gpregs_nosppc.expr):
+            return False
         r = gpregs_nosppc.expr[v]
 
         i = int(self.parent.imm5_3.value) << 2