From 7b12f700dd8c45c8bc24be4321e9a4b1bca590f9 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 12 Feb 2009 17:10:47 +0000 Subject: [PATCH] plug a tunnel build leak --- .../java/src/net/i2p/router/tunnel/pool/BuildHandler.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java index f6b4d3478..0699d3ff4 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java +++ b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java @@ -249,6 +249,8 @@ class BuildHandler { int record = order.indexOf(Integer.valueOf(i)); if (record < 0) { _log.error("Bad status index " + i); + // don't leak + _exec.buildComplete(cfg, cfg.getTunnelPool()); return; } int howBad = statuses[record]; @@ -294,9 +296,9 @@ class BuildHandler { _context.messageHistory().tunnelParticipantRejected(peer, "peer rejected after " + rtt + " with " + howBad + ": " + cfg.toString()); } } + _exec.buildComplete(cfg, cfg.getTunnelPool()); if (allAgree) { // wikked, completely build - _exec.buildComplete(cfg, cfg.getTunnelPool()); if (cfg.isInbound()) _context.tunnelDispatcher().joinInbound(cfg); else @@ -313,7 +315,6 @@ class BuildHandler { _context.statManager().addRateData("tunnel.buildClientSuccess", rtt, rtt); } else { // someone is no fun - _exec.buildComplete(cfg, cfg.getTunnelPool()); if (cfg.getDestination() == null) _context.statManager().addRateData("tunnel.buildExploratoryReject", rtt, rtt); else @@ -322,6 +323,8 @@ class BuildHandler { } else { if (_log.shouldLog(Log.WARN)) _log.warn(msg.getUniqueId() + ": Tunnel reply could not be decrypted for tunnel " + cfg); + // don't leak + _exec.buildComplete(cfg, cfg.getTunnelPool()); } }