From 3c26092b01b0fef64e6209f4608109ad614d8c26 Mon Sep 17 00:00:00 2001 From: Deirdre Connolly Date: Mon, 2 Dec 2019 19:18:55 -0500 Subject: [PATCH] Read max of 520 bytes for data fields when parsing filteradd messages --- zebra-network/src/protocol/external/codec.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 }) }