Fix a crash printing a malformed TCP packet.

Found via cargo-fuzz.
This commit is contained in:
whitequark 2017-06-24 11:23:27 +00:00
parent 3eaa96957c
commit c09e96a657
1 changed files with 7 additions and 0 deletions

View File

@ -729,6 +729,13 @@ impl<'a, T: AsRef<[u8]> + ?Sized> fmt::Display for Packet<&'a T> {
try!(write!(f, " urg={}", self.urgent_at()))
}
try!(write!(f, " len={}", self.payload().len()));
let header_len = self.header_len() as usize;
if header_len < field::URGENT.end {
try!(write!(f, " {}", Error::Truncated));
return Ok(())
}
let mut options = self.options();
while options.len() > 0 {
let (next_options, option) =