We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 3f43be8 commit ed2c376Copy full SHA for ed2c376
src/wire/tcp.rs
@@ -123,7 +123,12 @@ impl<T: AsRef<[u8]>> Packet<T> {
123
if len < field::URGENT.end {
124
Err(Error::Truncated)
125
} else {
126
- Ok(())
+ let header_len = self.header_len() as usize;
127
+ if len < header_len {
128
+ Err(Error::Truncated)
129
+ } else {
130
+ Ok(())
131
+ }
132
}
133
134
@@ -862,6 +867,12 @@ mod test {
862
867
assert_eq!(&packet.into_inner()[..], &PACKET_BYTES[..]);
863
868
864
869
870
+ #[test]
871
+ fn test_truncated() {
872
+ let packet = Packet::new(&PACKET_BYTES[..23]);
873
+ assert_eq!(packet.check_len(), Err(Error::Truncated));
874
875
+
865
876
static SYN_PACKET_BYTES: [u8; 24] =
866
877
[0xbf, 0x00, 0x00, 0x50,
878
0x01, 0x23, 0x45, 0x67,
0 commit comments