diff options
| author | serpilliere <devnull@localhost> | 2012-06-22 11:11:28 +0200 |
|---|---|---|
| committer | serpilliere <devnull@localhost> | 2012-06-22 11:11:28 +0200 |
| commit | b35f0f2217f4ffe27d46f6618d54689746f50af0 (patch) | |
| tree | 463d9550f6c9ff23ef796f5fc6c5ab29cc64a7bb /miasm/expression/expression_helper.py | |
| parent | 19fe36322489198269f449d653fff71195af9805 (diff) | |
| download | focaccia-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.py | 8 |
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): |