diff --git a/src/link/mod.rs b/src/link/mod.rs index 0fce536..f9b69a6 100644 --- a/src/link/mod.rs +++ b/src/link/mod.rs @@ -100,7 +100,6 @@ impl MessageReader { self.read_bytes += 1; if self.read_bytes >= UE_LENGTH_FIELD_SIZE { self.current_message_length = array_of_u8_to_u32(self.length_buffer) as usize; - self.change_state(ReadingState::Payload); if self.current_message_length > MAX_UE_MESSAGE_LENGTH { self.is_broken = true; return Err(ReadingStreamError::MessageTooLong { @@ -108,6 +107,7 @@ impl MessageReader { }); } self.current_message = Vec::with_capacity(self.current_message_length); + self.change_state(ReadingState::Payload); } } ReadingState::Payload => {