|  | @@ -248,9 +248,9 @@ impl<'a, T: AsRef<[u8]> + ?Sized> Packet<&'a T> {
 | 
	
		
			
				|  |  |      /// Return a pointer to the payload.
 | 
	
		
			
				|  |  |      #[inline]
 | 
	
		
			
				|  |  |      pub fn payload(&self) -> &'a [u8] {
 | 
	
		
			
				|  |  | -        let range = self.header_len() as usize;
 | 
	
		
			
				|  |  | +        let range = self.header_len() as usize..self.total_len() as usize;
 | 
	
		
			
				|  |  |          let data = self.buffer.as_ref();
 | 
	
		
			
				|  |  | -        &data[range..]
 | 
	
		
			
				|  |  | +        &data[range]
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -381,7 +381,7 @@ impl<'a, T: AsRef<[u8]> + AsMut<[u8]> + ?Sized> Packet<&'a mut T> {
 | 
	
		
			
				|  |  |      /// Return a mutable pointer to the payload.
 | 
	
		
			
				|  |  |      #[inline]
 | 
	
		
			
				|  |  |      pub fn payload_mut(&mut self) -> &mut [u8] {
 | 
	
		
			
				|  |  | -        let range = self.header_len() as usize..;
 | 
	
		
			
				|  |  | +        let range = self.header_len() as usize..self.total_len() as usize;
 | 
	
		
			
				|  |  |          let data = self.buffer.as_mut();
 | 
	
		
			
				|  |  |          &mut data[range]
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -611,6 +611,18 @@ mod test {
 | 
	
		
			
				|  |  |          assert_eq!(&packet.into_inner()[..], &PACKET_BYTES[..]);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    #[test]
 | 
	
		
			
				|  |  | +    fn test_overlong() {
 | 
	
		
			
				|  |  | +        let mut bytes = vec![];
 | 
	
		
			
				|  |  | +        bytes.extend(&PACKET_BYTES[..]);
 | 
	
		
			
				|  |  | +        bytes.push(0);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        assert_eq!(Packet::new(&bytes).payload().len(),
 | 
	
		
			
				|  |  | +                   PAYLOAD_BYTES.len());
 | 
	
		
			
				|  |  | +        assert_eq!(Packet::new(&mut bytes).payload_mut().len(),
 | 
	
		
			
				|  |  | +                   PAYLOAD_BYTES.len());
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      static REPR_PACKET_BYTES: [u8; 24] =
 | 
	
		
			
				|  |  |          [0x45, 0x00, 0x00, 0x18,
 | 
	
		
			
				|  |  |           0x00, 0x00, 0x40, 0x00,
 |