aboutsummaryrefslogtreecommitdiffstats
path: root/src/ip_packet.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ip_packet.rs')
-rw-r--r--src/ip_packet.rs4
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)),