Browse Source

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>
main
David Gibson 9 years ago
parent
commit
b06e55c88b
  1. 10
      dtc-parser.y
  2. 3
      tests/division-by-zero.dts

10
dtc-parser.y

@ -419,7 +419,15 @@ integer_mul: @@ -419,7 +419,15 @@ integer_mul:
$$ = 0;
}
}
| integer_mul '%' integer_unary { $$ = $1 % $3; }
| integer_mul '%' integer_unary
{
if ($3 != 0) {
$$ = $1 % $3;
} else {
ERROR(&@$, "Division by zero");
$$ = 0;
}
}
| integer_unary
;


3
tests/division-by-zero.dts

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
/dts-v1/;

/ {
prop = < (1/0) >;
prop-div = < (1/0) >;
prop-mod = < (1%0) >;
};

Loading…
Cancel
Save