Skip to content

Commit

Permalink
Fix a crash printing a malformed TCP packet.
Browse files Browse the repository at this point in the history
Found via cargo-fuzz.
  • Loading branch information
whitequark committed Jun 24, 2017
1 parent 6271dc7 commit 2582d15
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/wire/tcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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) =
Expand Down

0 comments on commit 2582d15

Please sign in to comment.