From: markt Date: Sat, 23 Jun 2007 15:00:51 +0000 (+0000) Subject: Port fix for bug 42547. Fix NPE when a ResourceLink tries to override an env-entry. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=a87e515a6cc86c12d515f99adf365c6f4034fb8f;p=tomcat7.0 Port fix for bug 42547. Fix NPE when a ResourceLink tries to override an env-entry. git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@550048 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/deploy/NamingResources.java b/java/org/apache/catalina/deploy/NamingResources.java index 26f1e6893..cff59666d 100644 --- a/java/org/apache/catalina/deploy/NamingResources.java +++ b/java/org/apache/catalina/deploy/NamingResources.java @@ -25,6 +25,8 @@ import java.util.HashMap; import java.util.Hashtable; import java.io.Serializable; +import org.apache.catalina.ServerFactory; + /** * Holds and manages the naming resources defined in the J2EE Enterprise @@ -191,9 +193,27 @@ public class NamingResources implements Serializable { public void addEnvironment(ContextEnvironment environment) { if (entries.containsKey(environment.getName())) { - if (findEnvironment(environment.getName()).getOverride()) { - removeEnvironment(environment.getName()); + ContextEnvironment ce = findEnvironment(environment.getName()); + ContextResourceLink rl = findResourceLink(environment.getName()); + if (ce != null) { + if (ce.getOverride()) { + removeEnvironment(environment.getName()); + } else { + return; + } + } else if (rl != null) { + // Link. Need to look at the global resources + NamingResources global = + ServerFactory.getServer().getGlobalNamingResources(); + if (global.findEnvironment(rl.getGlobal()) != null) { + if (global.findEnvironment(rl.getGlobal()).getOverride()) { + removeResourceLink(environment.getName()); + } else { + return; + } + } } else { + // It exists but it isn't an env or a res link... return; } } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 997977d90..2b7ad50a9 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -51,6 +51,10 @@ Fix XSS security vulnerability (CVE-2007-2450) in the Manager and Host Manager. Reported by Daiki Fukumori. (markt) + + 42547: Fix NPE when a ResourceLink in context.xml tries to + override an env-entry in web.xml. +