about summary refs log tree commit diff stats
path: root/miasm/expression/simplifications_common.py
diff options
context:
space:
mode:
authorTim Blazytko <tim@blazytko.to>2020-05-24 16:10:17 +0200
committerTim Blazytko <tim@blazytko.to>2020-05-24 16:10:17 +0200
commit2ac8bbe934addc04875a04b143f6f0e15a5d65f7 (patch)
tree73dd419a7e92514949d8c17dc6c3c294a17cc16e /miasm/expression/simplifications_common.py
parent43bdc4c510b02d7f4e96d1213331c52cf925d714 (diff)
downloadfocaccia-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.py10
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)