From 9041a2c69f7d94b97efd3807dadfbd2ce274586a Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Sun, 7 Jun 2015 14:13:58 +0000 Subject: [PATCH] SSU: Possible fix for NPE in establisher --- .../router/transport/udp/EstablishmentManager.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java index fce85e9266..89076f9ce3 100644 --- a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java +++ b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java @@ -850,11 +850,20 @@ class EstablishmentManager { if (_log.shouldLog(Log.WARN)) _log.warn("Peer " + state + " sent us an invalid DH parameter", ippe); _inboundStates.remove(state.getRemoteHostId()); + state.fail(); return; } - _transport.send(_builder.buildSessionCreatedPacket(state, + UDPPacket pkt = _builder.buildSessionCreatedPacket(state, _transport.getExternalPort(state.getSentIP().length == 16), - _transport.getIntroKey())); + _transport.getIntroKey()); + if (pkt == null) { + if (_log.shouldLog(Log.WARN)) + _log.warn("Peer " + state + " sent us an invalid IP?"); + _inboundStates.remove(state.getRemoteHostId()); + state.fail(); + return; + } + _transport.send(pkt); state.createdPacketSent(); } -- GitLab