From e5627e24800b266d34265540d18c3a5554130452 Mon Sep 17 00:00:00 2001 From: Andrew Jones Date: Tue, 14 May 2019 10:54:56 +0100 Subject: [PATCH] Prevent divide by zero panic with checked_div (#2575) --- substrate/core/cli/src/informant.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/substrate/core/cli/src/informant.rs b/substrate/core/cli/src/informant.rs index b78e9b0646..0d100c1963 100644 --- a/substrate/core/cli/src/informant.rs +++ b/substrate/core/cli/src/informant.rs @@ -163,10 +163,10 @@ pub fn start(service: &Service, exit: ::exit_future::Exit, handle: TaskExe fn speed(best_number: u64, last_number: Option, last_update: time::Instant) -> String { let since_last_millis = last_update.elapsed().as_secs() * 1000; let since_last_subsec_millis = last_update.elapsed().subsec_millis() as u64; - let speed = match last_number { - Some(num) => (best_number.saturating_sub(num) * 10_000 / (since_last_millis + since_last_subsec_millis)) as f64, - None => 0.0 - }; + let speed = last_number + .and_then(|num| + (best_number.saturating_sub(num) * 10_000).checked_div(since_last_millis + since_last_subsec_millis)) + .map_or(0.0, |s| s as f64); if speed < 1.0 { "".into()