diff options
Diffstat (limited to 'src/ip_packet.rs')
-rw-r--r-- | src/ip_packet.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/ip_packet.rs b/src/ip_packet.rs index 4aa7ecb..5f342b8 100644 --- a/src/ip_packet.rs +++ b/src/ip_packet.rs @@ -10,6 +10,10 @@ pub enum IpPacket<'a> { impl<'a> IpPacket<'a> { pub fn new(packet: &'a [u8]) -> Option<Self> { + if packet.len() == 0 { + return None; + } + match packet[0] >> 4 { 4 => Ipv4Packet::new(&packet).map(|packet| IpPacket::V4(packet)), 6 => Ipv6Packet::new(&packet).map(|packet| IpPacket::V6(packet)), |