From bfb55570999f422ab5e648bb11d56ab9d29505af Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Thu, 25 Jul 2024 08:59:36 -0400 Subject: [PATCH] i2ptunnel: Additional fixes for invalid entries in filter file (Gitlab #483) as reported by drzed --- .../i2p/i2ptunnel/access/FilterDefinitionElement.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java index c9bace8aa7..74ae27d02d 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java @@ -33,9 +33,14 @@ abstract class FilterDefinitionElement { * Utility method to create a Hash object from a .b32 string */ protected static Hash fromBase32(String b32) throws InvalidDefinitionException { + if (b32.length() != 60) + throw new InvalidDefinitionException("Invalid b32 " + b32); if (!b32.endsWith(".b32.i2p")) throw new InvalidDefinitionException("Invalid b32 " + b32); - b32 = b32.substring(0, b32.length() - 8); - return new Hash(Base32.decode(b32)); + String s = b32.substring(0, 52); + byte[] b = Base32.decode(s); + if (b == null) + throw new InvalidDefinitionException("Invalid b32 " + b32); + return Hash.create(b); } } -- GitLab