Prevent crash on modulo by zero

1937095 "Prevent crash on division by zero" fixed a crash when attempting
a division by zero using the / operator in a dts.  However, it missed the
precisely equivalent crash with the % (modulus) operator.  This patch fixes
the oversight.

Reported-by: Anton Blanchard <anton@samba.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
diff --git a/dtc-parser.y b/dtc-parser.y
index 00d4dbb..000873f 100644
--- a/dtc-parser.y
+++ b/dtc-parser.y
@@ -419,7 +419,15 @@
 				$$ = 0;
 			}
 		}
-	| integer_mul '%' integer_unary { $$ = $1 % $3; }
+	| integer_mul '%' integer_unary
+		{
+			if ($3 != 0) {
+				$$ = $1 % $3;
+			} else {
+				ERROR(&@$, "Division by zero");
+				$$ = 0;
+			}
+		}
 	| integer_unary
 	;
 
diff --git a/tests/division-by-zero.dts b/tests/division-by-zero.dts
index d26fc27..2984b29 100644
--- a/tests/division-by-zero.dts
+++ b/tests/division-by-zero.dts
@@ -1,5 +1,6 @@
 /dts-v1/;
 
 / {
-	prop = < (1/0) >;
+	prop-div = < (1/0) >;
+	prop-mod = < (1%0) >;
 };