From 0d74fb3caf86002de690c885b5d0b78ce4ef082d Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Wed, 6 Nov 2024 01:33:50 +1100 Subject: [PATCH] chore(connlib): don't panic on invalid IP packet from smoltcp (#7267) `smoltcp` should never emit a buffer that isn't a valid IP packet but in case it does, we shouldn't panic as a result and instead just discard the packet. --- rust/dns-over-tcp/src/stub_device.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rust/dns-over-tcp/src/stub_device.rs b/rust/dns-over-tcp/src/stub_device.rs index 7084fadd2..c099d37da 100644 --- a/rust/dns-over-tcp/src/stub_device.rs +++ b/rust/dns-over-tcp/src/stub_device.rs @@ -73,7 +73,10 @@ impl<'a> smoltcp::phy::TxToken for SmolTxToken<'a> { let mut ip_packet_buf = IpPacketBuf::new(); let result = f(ip_packet_buf.buf()); - let mut ip_packet = IpPacket::new(ip_packet_buf, len).unwrap(); + let Some(mut ip_packet) = IpPacket::new(ip_packet_buf, len) else { + tracing::warn!("Received invalid IP packet"); + return result; + }; ip_packet.update_checksum(); self.outbound_packets.push_back(ip_packet);