summaryrefslogtreecommitdiff
path: root/src/message.rs
diff options
context:
space:
mode:
authorStuart Stock <stuart@int08h.com>2018-03-24 17:34:45 -0500
committerStuart Stock <stuart@int08h.com>2018-03-24 17:34:45 -0500
commite0d15dc1d9bfbd92518916dbfc306cda32c47ff3 (patch)
tree712a1dcd0e220b6dc61dbb9bc01099b8e3155ad8 /src/message.rs
parentc5bcc5025a801f9c3b60715675ca86a70a72d98a (diff)
downloadroughenough-e0d15dc1d9bfbd92518916dbfc306cda32c47ff3.zip
Check single tag message length
Diffstat (limited to 'src/message.rs')
-rw-r--r--src/message.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/message.rs b/src/message.rs
index 3429802..f660e10 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -70,6 +70,10 @@ impl RtMessage {
/// Internal function to create a single tag message
fn single_tag_message(bytes: &[u8], msg: &mut Cursor<&[u8]>) -> Result<Self, Error> {
+ if bytes.len() < 8 {
+ return Err(Error::MessageTooShort);
+ }
+
let pos = msg.position() as usize;
msg.set_position((pos + 4) as u64);
@@ -80,7 +84,7 @@ impl RtMessage {
let mut rt_msg = RtMessage::new(1);
rt_msg.add_field(tag, &value)?;
- return Ok(rt_msg);
+ Ok(rt_msg)
}
/// Internal function to create a multiple tag message