diff --git a/router/java/src/net/i2p/router/transport/udp/UDPSender.java b/router/java/src/net/i2p/router/transport/udp/UDPSender.java index 1c1310bd658a3c18525bd4be45fa2d9f2ca81ff5..9776bfcff0412a1082238bd8c6114f2623e3676b 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPSender.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPSender.java @@ -193,7 +193,8 @@ class UDPSender { public void add(UDPPacket packet) { if (packet == null || !_keepRunning) return; int psz = packet.getPacket().getLength(); - if (psz > PeerState2.MAX_MTU) { + // minus IP header and UDP header, assume IPv4, this is just a quick check + if (psz > PeerState2.MAX_MTU - 28) { _log.error("Dropping large UDP packet " + psz + " bytes: " + packet, new Exception()); return; }