From 07730be9abc868f2ae4a0ac3a28b559b09c3ab29 Mon Sep 17 00:00:00 2001 From: Hardhat Chad <155858888+HardhatChad@users.noreply.github.com> Date: Wed, 13 Nov 2024 23:50:02 -0600 Subject: [PATCH] avoid diving by zero (#106) --- program/src/mine.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/program/src/mine.rs b/program/src/mine.rs index 5c932d2..aa87c37 100644 --- a/program/src/mine.rs +++ b/program/src/mine.rs @@ -118,7 +118,10 @@ pub fn process_mine(accounts: &[AccountInfo], data: &[u8]) -> ProgramResult { applied_boosts[i] = *boost_info.key; // Apply multiplier if boost is not expired and last stake at was more than one minute ago. - if boost.expires_at.gt(&t) && stake.last_stake_at.saturating_add(ONE_MINUTE).le(&t) { + if boost.expires_at.gt(&t) + && boost.total_stake.gt(&0) + && stake.last_stake_at.saturating_add(ONE_MINUTE).le(&t) + { let multiplier = boost.multiplier.checked_sub(1).unwrap(); let boost_reward = (base_reward as u128) .checked_mul(multiplier as u128)