From 752655807c9869a1112f7b1810900b557f0994f4 Mon Sep 17 00:00:00 2001 From: Henry Schimke Date: Tue, 31 Jan 2023 18:42:59 -0600 Subject: [PATCH] fix buffer overflow in bit matrix --- src/common/bit_matrix.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/bit_matrix.rs b/src/common/bit_matrix.rs index eb00316..7b32ea1 100644 --- a/src/common/bit_matrix.rs +++ b/src/common/bit_matrix.rs @@ -228,9 +228,9 @@ impl BitMatrix { pub fn try_get_area(&self, x: u32, y: u32, box_size: u32) -> Option { let mut matrix = Vec::with_capacity((box_size * box_size) as usize); - let start_x = x - box_size / 2; + let start_x = (x as i32 - box_size as i32 / 2).max(0) as u32; let end_x = x + box_size / 2; - let start_y = y - box_size / 2; + let start_y = (y as i32 - box_size as i32 / 2).max(0) as u32; let end_y = y + box_size / 2; for get_x in start_x..=end_x {