diff --git a/zebra-network/src/protocol/external/codec.rs b/zebra-network/src/protocol/external/codec.rs index 9b14438d..519869f8 100644 --- a/zebra-network/src/protocol/external/codec.rs +++ b/zebra-network/src/protocol/external/codec.rs @@ -588,15 +588,15 @@ impl Codec { } fn read_filterload(&self, mut reader: R, body_len: usize) -> Result { + const MAX_FILTERLOAD_LENGTH: usize = 36000; + const FILTERLOAD_REMAINDER_LENGTH: usize = 4 + 4 + 1; + if !(FILTERLOAD_REMAINDER_LENGTH <= body_len && body_len <= FILTERLOAD_REMAINDER_LENGTH + MAX_FILTERLOAD_LENGTH) { return Err(Error::Parse("Invalid filterload message body length.")); } - const MAX_FILTERLOAD_LENGTH: usize = 36000; - const FILTERLOAD_REMAINDER_LENGTH: usize = 4 + 4 + 1; - let filter_length: usize = body_len - FILTERLOAD_REMAINDER_LENGTH; let mut filter_bytes = vec![0; filter_length];