From f8281aa7c87e365bdf1adcced842e4ae8be87985 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 30 Jul 2006 22:11:47 +0000 Subject: * gnu/java/security/Engine.java (getInstance): Ignore self referencing aliases. --- ChangeLog | 5 +++++ gnu/java/security/Engine.java | 17 ++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index d7a3bddd3..af00e869a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-07-30 Matt Wringe + + * gnu/java/security/Engine.java + (getInstance): Ignore self referencing aliases. + 2006-07-30 Mark Wielaard * resource/java/security/classpath.security: Add /dev/urandom as diff --git a/gnu/java/security/Engine.java b/gnu/java/security/Engine.java index 59a5d0e52..c6271e3f2 100644 --- a/gnu/java/security/Engine.java +++ b/gnu/java/security/Engine.java @@ -166,13 +166,16 @@ public final class Engine { alias = (String) provider.getProperty(key); - algorithm = alias; - if (count++ > MAX_ALIASES) - throw new NoSuchAlgorithmException("too many aliases"); - - // need to reset enumeration to now look for the alias - enumer = provider.propertyNames(); - + + if (! algorithm.equalsIgnoreCase(alias)) // does not refer to itself + { + algorithm = alias; + if (count++ > MAX_ALIASES) + throw new NoSuchAlgorithmException("too many aliases"); + + // need to reset enumeration to now look for the alias + enumer = provider.propertyNames(); + } } } -- cgit v1.2.1