about summary refs log tree commit diff stats
path: root/miasm/expression/expression_helper.py
diff options
context:
space:
mode:
authorserpilliere <devnull@localhost>2012-06-22 11:11:28 +0200
committerserpilliere <devnull@localhost>2012-06-22 11:11:28 +0200
commitb35f0f2217f4ffe27d46f6618d54689746f50af0 (patch)
tree463d9550f6c9ff23ef796f5fc6c5ab29cc64a7bb /miasm/expression/expression_helper.py
parent19fe36322489198269f449d653fff71195af9805 (diff)
downloadfocaccia-miasm-b35f0f2217f4ffe27d46f6618d54689746f50af0.tar.gz
focaccia-miasm-b35f0f2217f4ffe27d46f6618d54689746f50af0.zip
expression eval abs: fix missing uint1
Diffstat (limited to 'miasm/expression/expression_helper.py')
-rw-r--r--miasm/expression/expression_helper.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/miasm/expression/expression_helper.py b/miasm/expression/expression_helper.py
index ffa8cbd3..39f643f1 100644
--- a/miasm/expression/expression_helper.py
+++ b/miasm/expression/expression_helper.py
@@ -17,7 +17,8 @@
 #
 from miasm.expression.expression import *
 
-tab_size_int = {8:uint8,
+tab_size_int = {1:uint1,
+                8:uint8,
                 16:uint16,
                 32:uint32,
                 64:uint64,
@@ -154,7 +155,9 @@ def _expr_simp(e):
                 i1 = args.pop()
                 i2 = args.pop()
                 if i1.get_size() != i2.get_size():
-                    raise ValueError("diff size! %s"%(str(e)))
+                    raise ValueError("diff size! %s %r %r"%(str(e),
+                                                            i1.get_size(),
+                                                            i2.get_size()))
                 if op == '+':
                     o = i1.arg + i2.arg
                 elif op == '*':
@@ -286,6 +289,7 @@ def _expr_simp(e):
             if total_bit in tab_size_int:
                 return ExprInt(tab_size_int[total_bit]((uint64((e.arg.arg)>>e.start)) & mask))
             else:
+                fds
                 return ExprInt(type(e.arg.arg)((uint64((e.arg.arg)>>e.start)) & mask))
         # Slice(Slice(A, x), y) => Slice(A, z)
         elif isinstance(e.arg, ExprSlice):