Author: markt
Date: Thu Jun  4 11:07:19 2009
New Revision: 781708

URL: http://svn.apache.org/viewvc?rev=781708&view=rev
Log:
Port fixes for https://issues.apache.org/bugzilla/show_bug.cgi?id=29936 and 
https://issues.apache.org/bugzilla/show_bug.cgi?id=45933
This addresses CVE-2009-0783

Modified:
    tomcat/container/branches/tc4.1.x/RELEASE-NOTES-4.1.txt
    
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/ContextConfig.java

Modified: tomcat/container/branches/tc4.1.x/RELEASE-NOTES-4.1.txt
URL: 
http://svn.apache.org/viewvc/tomcat/container/branches/tc4.1.x/RELEASE-NOTES-4.1.txt?rev=781708&r1=781707&r2=781708&view=diff
==============================================================================
--- tomcat/container/branches/tc4.1.x/RELEASE-NOTES-4.1.txt (original)
+++ tomcat/container/branches/tc4.1.x/RELEASE-NOTES-4.1.txt Thu Jun  4 11:07:19 
2009
@@ -1758,6 +1758,14 @@
          enumeration when using FORM authentication.
          This is CVE-2009-0580.
 
+[4.1.40] #29936
+         Don't use web application provided XML parser to process web.xml files
+         This is part of CVE-2009-0783
+
+[4.1.40] #45933
+         Don't use web application provided XML parser to process tld files
+         This is part of CVE-2009-0783
+
 
 ----------------
 Coyote Bug Fixes:

Modified: 
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/ContextConfig.java?rev=781708&r1=781707&r2=781708&view=diff
==============================================================================
--- 
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
 (original)
+++ 
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
 Thu Jun  4 11:07:19 2009
@@ -119,14 +119,14 @@
      * The <code>Digester</code> we will use to process tag library
      * descriptor files.
      */
-    private static Digester tldDigester = createTldDigester();
+    private static Digester tldDigester;
 
 
     /**
      * The <code>Digester</code> we will use to process web application
      * deployment descriptor files.
      */
-    private static Digester webDigester = createWebDigester();
+    private static Digester webDigester;
 
 
     // ------------------------------------------------------------- Properties
@@ -178,7 +178,9 @@
         }
 
         // Process the event that has occurred
-        if (event.getType().equals(Lifecycle.START_EVENT))
+        if (event.getType().equals(Lifecycle.BEFORE_START_EVENT))
+            beforeStart();
+        else if (event.getType().equals(Lifecycle.START_EVENT))
             start();
         else if (event.getType().equals(Lifecycle.STOP_EVENT))
             stop();
@@ -554,6 +556,21 @@
 
 
     /**
+     * Process a "beforeStart" event for this context.
+     */
+    private synchronized void beforeStart() {
+        if (webDigester == null){
+            webDigester = createWebDigester();
+            webDigester.getParser();
+        }
+        if (tldDigester == null){
+            tldDigester = createTldDigester();
+            tldDigester.getParser();
+        }
+    }
+
+
+    /**
      * Process a "start" event for this Context.
      */
     private synchronized void start() {



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to