From 3c260aa33301e3c2c9ef9869e655c6da2664e6dc Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 9 Oct 2009 16:00:38 +0000 Subject: [PATCH] fix rare ElGamal AIOOBE --- core/java/src/net/i2p/crypto/ElGamalEngine.java | 9 +++++---- history.txt | 2 ++ router/java/src/net/i2p/router/RouterVersion.java | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/core/java/src/net/i2p/crypto/ElGamalEngine.java b/core/java/src/net/i2p/crypto/ElGamalEngine.java index ae82613c7..fe34012f2 100644 --- a/core/java/src/net/i2p/crypto/ElGamalEngine.java +++ b/core/java/src/net/i2p/crypto/ElGamalEngine.java @@ -181,16 +181,17 @@ public class ElGamalEngine { for (i = 0; i < val.length; i++) if (val[i] != (byte) 0x00) break; - //ByteArrayInputStream bais = new ByteArrayInputStream(val, i, val.length - i); - byte hashData[] = new byte[Hash.HASH_LENGTH]; - System.arraycopy(val, i + 1, hashData, 0, Hash.HASH_LENGTH); - Hash hash = new Hash(hashData); int payloadLen = val.length - i - 1 - Hash.HASH_LENGTH; if (payloadLen < 0) { if (_log.shouldLog(Log.ERROR)) _log.error("Decrypted data is too small (" + (val.length - i)+ ")"); return null; } + + //ByteArrayInputStream bais = new ByteArrayInputStream(val, i, val.length - i); + byte hashData[] = new byte[Hash.HASH_LENGTH]; + System.arraycopy(val, i + 1, hashData, 0, Hash.HASH_LENGTH); + Hash hash = new Hash(hashData); byte rv[] = new byte[payloadLen]; System.arraycopy(val, i + 1 + Hash.HASH_LENGTH, rv, 0, rv.length); diff --git a/history.txt b/history.txt index 790b4643e..ceee3bc43 100644 --- a/history.txt +++ b/history.txt @@ -1,5 +1,7 @@ 2009-10-09 zzz + * ElGamalEngine: Fix rare AIOOBE (thanks hottuna!) * I2PTunnel: Fix persistent client tunnel keyfile location + * peers.jsp: Fix NTCP rate formatting (thanks hottuna!) 2009-10-09 dr|z3d * Add paste.i2p2.i2p, and echelon's software links to readmes (thanks diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index f74ab11db..9a7f805ca 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 25; + public final static long BUILD = 26; /** for example "-test" */ public final static String EXTRA = "-rc"; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;