aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIstvan Ruzman <istvan@ruzman.eu>2019-12-17 12:23:06 +0100
committerIstvan Ruzman <istvan@ruzman.eu>2019-12-17 12:23:06 +0100
commit09e5061aa36544056d18aab5b2d5af8ada755ffb (patch)
treefb4c168be087b2284d2a86e2161ff2223612a3cc
parentedd24ef3d633856c92f76acc8808df937ab7aeee (diff)
Fix: Check for mandatory Service Name Tag
-rw-r--r--src/header.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/header.rs b/src/header.rs
index 4114acb..721d2c0 100644
--- a/src/header.rs
+++ b/src/header.rs
@@ -59,6 +59,8 @@ impl<'a> Header<'a> {
actual_packet_length: buffer.len() as u16,
payload_length: length as u16,
});
+ } else if length == 0 {
+ return Err(ParseError::MissingServiceName);
}
Self::validate_tags(&mut buffer[6..6 + length])?;
@@ -144,7 +146,10 @@ impl<'a> Header<'a> {
if length != 0 || payload.len() != 4 {
return Err(ParseError::DataBehindEolTag);
}
- return Ok(());
+
+ if !service_name { return Err(ParseError::MissingServiceName); }
+
+ Ok(())
}
pub fn code(&self) -> u8 {