From 709448953656d33f86ebf983a8ade4d5683259fd Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 1 Oct 2009 18:19:02 +0000 Subject: [PATCH] fix OCMOSJ SKM NPE --- .../src/net/i2p/router/message/GarlicMessageBuilder.java | 2 ++ .../i2p/router/message/OutboundClientMessageJobHelper.java | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/router/java/src/net/i2p/router/message/GarlicMessageBuilder.java b/router/java/src/net/i2p/router/message/GarlicMessageBuilder.java index 961c0f769..d2fe7cd61 100644 --- a/router/java/src/net/i2p/router/message/GarlicMessageBuilder.java +++ b/router/java/src/net/i2p/router/message/GarlicMessageBuilder.java @@ -102,6 +102,7 @@ public class GarlicMessageBuilder { * @param config how/what to wrap * @param wrappedKey output parameter that will be filled with the sessionKey used * @param wrappedTags output parameter that will be filled with the sessionTags used + * @param skm non-null */ public static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set wrappedTags, SessionKeyManager skm) { @@ -122,6 +123,7 @@ public class GarlicMessageBuilder { * @param wrappedKey output parameter that will be filled with the sessionKey used * @param wrappedTags output parameter that will be filled with the sessionTags used * @param numTagsToDeliver only if the estimated available tags are below the threshold + * @param skm non-null */ private static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set wrappedTags, int numTagsToDeliver, boolean forceElGamal, SessionKeyManager skm) { diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java b/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java index 75b5c8dc9..9d045c510 100644 --- a/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java +++ b/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java @@ -10,6 +10,7 @@ package net.i2p.router.message; import java.util.Set; +import net.i2p.crypto.SessionKeyManager; import net.i2p.data.Certificate; import net.i2p.data.Destination; import net.i2p.data.Hash; @@ -75,8 +76,11 @@ class OutboundClientMessageJobHelper { GarlicConfig config = createGarlicConfig(ctx, replyToken, expiration, recipientPK, dataClove, from, dest, replyTunnel, requireAck, bundledReplyLeaseSet); if (config == null) return null; + SessionKeyManager skm = ctx.clientManager().getClientSessionKeyManager(from); + if (skm == null) + return null; GarlicMessage msg = GarlicMessageBuilder.buildMessage(ctx, config, wrappedKey, wrappedTags, - ctx.clientManager().getClientSessionKeyManager(from)); + skm); return msg; }