From d139d42051b3539970ff5ec7fca6deb311e7307c Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Fri, 7 Apr 2017 09:14:52 +1000 Subject: Fix / command: divide by zero Avoid exception on integer divided by zero Reported-by: Ryan Whitworth Signed-off-by: Steve Bennett --- jim.c | 7 ++++++- regtest.tcl | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/jim.c b/jim.c index 291c9ac..74c16d3 100644 --- a/jim.c +++ b/jim.c @@ -11635,8 +11635,13 @@ static int JimSubDivHelper(Jim_Interp *interp, int argc, Jim_Obj *const *argv, i } if (op == JIM_EXPROP_SUB) res -= wideValue; - else + else { + if (wideValue == 0) { + Jim_SetResultString(interp, "Division by zero", -1); + return JIM_ERR; + } res /= wideValue; + } } Jim_SetResultInt(interp, res); return JIM_OK; diff --git a/regtest.tcl b/regtest.tcl index 4f4b459..d84e72c 100644 --- a/regtest.tcl +++ b/regtest.tcl @@ -267,6 +267,11 @@ foreach i {1 2 3 4} { } puts "TEST 35 PASSED" +# REGTEST 36 +# divide integer by integer zero +catch {/ 1 0} +puts "TEST 36 PASSED" + # TAKE THE FOLLOWING puts AS LAST LINE puts "--- ALL TESTS PASSED ---" -- cgit v1.1