diff options
| author | Tim Blazytko <tim@blazytko.to> | 2020-05-24 16:10:17 +0200 |
|---|---|---|
| committer | Tim Blazytko <tim@blazytko.to> | 2020-05-24 16:10:17 +0200 |
| commit | 2ac8bbe934addc04875a04b143f6f0e15a5d65f7 (patch) | |
| tree | 73dd419a7e92514949d8c17dc6c3c294a17cc16e /miasm/expression/simplifications_common.py | |
| parent | 43bdc4c510b02d7f4e96d1213331c52cf925d714 (diff) | |
| download | focaccia-miasm-2ac8bbe934addc04875a04b143f6f0e15a5d65f7.tar.gz focaccia-miasm-2ac8bbe934addc04875a04b143f6f0e15a5d65f7.zip | |
simplifications_common: added explicit assertion messages for division by 0
Diffstat (limited to 'miasm/expression/simplifications_common.py')
| -rw-r--r-- | miasm/expression/simplifications_common.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/miasm/expression/simplifications_common.py b/miasm/expression/simplifications_common.py index f68b8ed5..ae3494c1 100644 --- a/miasm/expression/simplifications_common.py +++ b/miasm/expression/simplifications_common.py @@ -71,26 +71,28 @@ def simp_cst_propagation(e_s, expr): shifter = int(int2) % int2.size out = (int(int1) << shifter) | (int(int1) >> (int2.size - shifter)) elif op_name == '/': + assert int(int2), "division by 0" out = int(int1) // int(int2) elif op_name == '%': + assert int(int2), "division by 0" out = int(int1) % int(int2) elif op_name == 'sdiv': - assert int(int2) + assert int(int2), "division by 0" tmp1 = mod_size2int[int1.size](int(int1)) tmp2 = mod_size2int[int2.size](int(int2)) out = mod_size2uint[int1.size](tmp1 // tmp2) elif op_name == 'smod': - assert int(int2) + assert int(int2), "division by 0" tmp1 = mod_size2int[int1.size](int(int1)) tmp2 = mod_size2int[int2.size](int(int2)) out = mod_size2uint[int1.size](tmp1 % tmp2) elif op_name == 'umod': - assert int(int2) + assert int(int2), "division by 0" tmp1 = mod_size2uint[int1.size](int(int1)) tmp2 = mod_size2uint[int2.size](int(int2)) out = mod_size2uint[int1.size](tmp1 % tmp2) elif op_name == 'udiv': - assert int(int2) + assert int(int2), "division by 0" tmp1 = mod_size2uint[int1.size](int(int1)) tmp2 = mod_size2uint[int2.size](int(int2)) out = mod_size2uint[int1.size](tmp1 // tmp2) |