From 5dd941b311ea5a4d0e873ad0b6a1a0db9ed2aedc Mon Sep 17 00:00:00 2001 From: JL2210 Date: Wed, 8 Apr 2020 18:38:18 -0400 Subject: [PATCH] Fix modulo by zero Yet another case caught by scan-build: src/link/patch.c:188:21: warning: Division by zero value = popRPN() % value; ~~~~~~~~~^~~~~~~ Just copy over the code from the division case, with a few modifications. Signed-off-by: JL2210 --- src/link/patch.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/link/patch.c b/src/link/patch.c index 91d9ef5d..d9f56cea 100644 --- a/src/link/patch.c +++ b/src/link/patch.c @@ -185,7 +185,13 @@ static int32_t computeRPNExpr(struct Patch const *patch, break; case RPN_MOD: value = popRPN(); - value = popRPN() % value; + if (value == 0) { + error("%s: Modulo by 0", patch->fileName); + popRPN(); + value = 0; + } else { + value = popRPN() % value; + } break; case RPN_UNSUB: value = -popRPN();