]> granicus.if.org Git - jq/commitdiff
Fix #735
authorWilliam Langford <wlangfor@gmail.com>
Tue, 24 Mar 2015 02:11:55 +0000 (22:11 -0400)
committerWilliam Langford <wlangfor@gmail.com>
Tue, 24 Mar 2015 02:11:55 +0000 (22:11 -0400)
builtin.c

index 99ce331cfd6ce42e687a59a35ed5b023f8dc7fab..03c9081438bf0fa8e4284e51a0a683be08df552f 100644 (file)
--- a/builtin.c
+++ b/builtin.c
@@ -218,6 +218,9 @@ static jv f_divide(jq_state *jq, jv input, jv a, jv b) {
 static jv f_mod(jq_state *jq, jv input, jv a, jv b) {
   jv_free(input);
   if (jv_get_kind(a) == JV_KIND_NUMBER && jv_get_kind(b) == JV_KIND_NUMBER) {
+    if ((intmax_t)jv_number_value(b) == 0) {
+      return jv_invalid_with_msg(jv_string("Cannot mod by zero."));
+    }
     return jv_number((intmax_t)jv_number_value(a) % (intmax_t)jv_number_value(b));
   } else {
     return type_error2(a, b, "cannot be divided");