From 9769fabb325b8a5c073bb15b28c972441498cf13 Mon Sep 17 00:00:00 2001 From: Daniel Rose <droseger@protonmail.com> Date: Fri, 13 Jul 2018 10:38:03 +0200 Subject: [PATCH] [MinMax] excess: add error handling for invalid index value --- src/common/min_max.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/common/min_max.rs b/src/common/min_max.rs index 3be6cf7..fad2a5c 100644 --- a/src/common/min_max.rs +++ b/src/common/min_max.rs @@ -204,6 +204,9 @@ impl MinMax { } pub fn excess(&self, index: u64) -> Result<u64, NodeError> { + if index >= self.bits.len() { + return Err(NodeError::NotANodeError); + } let block_number = (index / self.block_size); let position_in_block = index % self.block_size; let mut pre_excess: i64 = 0; @@ -665,7 +668,6 @@ mod tests { let min_max = MinMax::new(bits, 4); assert_eq!(min_max.excess(21).unwrap(), 0); assert_eq!(min_max.excess(7).unwrap(), 4); - // TODO: Werden schon ungültige index-werte zurückgewiesen? } #[test] @@ -674,6 +676,7 @@ mod tests { let min_max = MinMax::new(bits, 2); assert_eq!(min_max.excess(0).unwrap(), 1); assert_eq!(min_max.excess(1).unwrap(), 0); + assert_eq!(min_max.excess(2).unwrap_err(), NodeError::NotANodeError); } #[test] -- GitLab