From cb3fa889fbddb7cd15a76fa04a6119a083bbde72 Mon Sep 17 00:00:00 2001 From: Herbert Wolverson Date: Wed, 1 Feb 2023 20:00:32 +0000 Subject: [PATCH] ISSUE #229 - Use checked add with 0 default when adding packet counters. --- .../src/throughput_tracker/tracking_data.rs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/rust/lqosd/src/throughput_tracker/tracking_data.rs b/src/rust/lqosd/src/throughput_tracker/tracking_data.rs index 4538f7f7..f00714a0 100644 --- a/src/rust/lqosd/src/throughput_tracker/tracking_data.rs +++ b/src/rust/lqosd/src/throughput_tracker/tracking_data.rs @@ -124,22 +124,22 @@ impl ThroughputTracker { .iter() .map(|(_k, v)| { ( - v.bytes.0 - v.prev_bytes.0, - v.bytes.1 - v.prev_bytes.1, - v.packets.0 - v.prev_packets.0, - v.packets.1 - v.prev_packets.1, + v.bytes.0.saturating_sub(v.prev_bytes.0), + v.bytes.1.saturating_sub(v.prev_bytes.1), + v.packets.0.saturating_sub(v.prev_packets.0), + v.packets.1.saturating_sub(v.prev_packets.1), v.tc_handle.as_u32() > 0, ) }) .for_each( |(bytes_down, bytes_up, packets_down, packets_up, shaped)| { - self.bytes_per_second.0 += bytes_down; - self.bytes_per_second.1 += bytes_up; - self.packets_per_second.0 += packets_down; - self.packets_per_second.1 += packets_up; + self.bytes_per_second.0 = self.bytes_per_second.0.checked_add(bytes_down).unwrap_or(0); + self.bytes_per_second.1 = self.bytes_per_second.1.checked_add(bytes_up).unwrap_or(0); + self.packets_per_second.0 = self.packets_per_second.0.checked_add(packets_down).unwrap_or(0); + self.packets_per_second.1 = self.packets_per_second.1.checked_add(packets_up).unwrap_or(0); if shaped { - self.shaped_bytes_per_second.0 += bytes_down; - self.shaped_bytes_per_second.1 += bytes_up; + self.shaped_bytes_per_second.0 = self.shaped_bytes_per_second.0.checked_add(bytes_down).unwrap_or(0); + self.shaped_bytes_per_second.1 = self.shaped_bytes_per_second.1.checked_add(bytes_up).unwrap_or(0); } }, );