From 3275fb431327cd5e91c9d18dce16b157ff9ebc30 Mon Sep 17 00:00:00 2001 From: mdecimus Date: Wed, 18 Dec 2024 14:17:16 +0100 Subject: [PATCH] Fix oob in ThrottleKeyHasher::write --- crates/common/src/lib.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/common/src/lib.rs b/crates/common/src/lib.rs index 5d5c7b01..53b59d12 100644 --- a/crates/common/src/lib.rs +++ b/crates/common/src/lib.rs @@ -282,7 +282,13 @@ impl Hasher for ThrottleKeyHasher { } fn write(&mut self, bytes: &[u8]) { - self.hash = u64::from_ne_bytes((&bytes[..std::mem::size_of::()]).try_into().unwrap()); + debug_assert!( + bytes.len() >= std::mem::size_of::(), + "ThrottleKeyHasher: input too short {bytes:?}" + ); + self.hash = bytes + .get(0..std::mem::size_of::()) + .map_or(0, |b| u64::from_ne_bytes(b.try_into().unwrap())); } }