Skip to content

Commit 367e944

Browse files
author
Ben Leadbetter
committed
fix: panic on empty ump text iterator
1 parent 06b0140 commit 367e944

File tree

3 files changed

+23
-3
lines changed

3 files changed

+23
-3
lines changed

src/ump_stream/endpoint_name.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,14 @@ mod tests {
9797
let message = EndpointName::try_from(&buffer[..]).unwrap();
9898
assert_eq!(message.name(), "Gimme some signal 🔊 🙌");
9999
}
100+
101+
#[test]
102+
fn read_empty_bytes() {
103+
assert_eq!(
104+
EndpointName::<std::vec::Vec<u32>>::new()
105+
.name_bytes()
106+
.collect::<std::vec::Vec<u8>>(),
107+
std::vec![]
108+
);
109+
}
100110
}

src/ump_stream/function_block_name.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,4 +190,14 @@ mod tests {
190190
0x9,
191191
);
192192
}
193+
194+
#[test]
195+
fn read_empty_bytes() {
196+
assert_eq!(
197+
FunctionBlockName::<std::vec::Vec<u32>>::new()
198+
.name_bytes()
199+
.collect::<std::vec::Vec<u8>>(),
200+
std::vec![],
201+
);
202+
}
193203
}

src/ump_stream/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -268,14 +268,14 @@ pub struct TextBytesIterator<'a> {
268268
impl<'a> core::iter::Iterator for TextBytesIterator<'a> {
269269
type Item = u8;
270270
fn next(&mut self) -> Option<Self::Item> {
271+
while !self.finished() && self.value() == 0 {
272+
self.advance();
273+
}
271274
if self.finished() {
272275
return None;
273276
}
274277
let ret = Some(self.value());
275278
self.advance();
276-
while !self.finished() && self.value() == 0 {
277-
self.advance();
278-
}
279279
ret
280280
}
281281

0 commit comments

Comments
 (0)