From 87de82ac944eea7561195e936d1029e93b845d85 Mon Sep 17 00:00:00 2001 From: Trent Nelson Date: Tue, 6 Oct 2020 09:56:34 -0600 Subject: [PATCH] faucet: Use checked math in request limiter --- faucet/src/faucet.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/faucet/src/faucet.rs b/faucet/src/faucet.rs index 5c6f79760..28e19398c 100644 --- a/faucet/src/faucet.rs +++ b/faucet/src/faucet.rs @@ -87,7 +87,10 @@ impl Faucet { } pub fn check_time_request_limit(&mut self, request_amount: u64) -> bool { - (self.request_current + request_amount) <= self.per_time_cap + self.request_current + .checked_add(request_amount) + .map(|s| s <= self.per_time_cap) + .unwrap_or(false) } pub fn clear_request_count(&mut self) { @@ -122,7 +125,7 @@ impl Faucet { } } if self.check_time_request_limit(lamports) { - self.request_current += lamports; + self.request_current = self.request_current.saturating_add(lamports); datapoint_info!( "faucet-airdrop", ("request_amount", lamports, i64),