diff --git a/zebra-network/src/protocol/external/codec.rs b/zebra-network/src/protocol/external/codec.rs index 5ad764ff5..0b6652354 100644 --- a/zebra-network/src/protocol/external/codec.rs +++ b/zebra-network/src/protocol/external/codec.rs @@ -607,9 +607,13 @@ impl Codec { }) } - fn read_filteradd(&self, mut reader: R) -> Result { + fn read_filteradd(&self, reader: R) -> Result { let mut bytes = Vec::new(); - reader.read_to_end(&mut bytes)?; + + // Maximum size of data is 520 bytes. + let mut handle = reader.take(520); + + handle.read(&mut bytes)?; Ok(Message::FilterAdd { data: bytes }) }