Author: tmancill
Date: 2011-11-29 05:29:50 +0000 (Tue, 29 Nov 2011)
New Revision: 15472

Removed:
   trunk/tomcat6/debian/patches/0011-623242.patch
   trunk/tomcat6/debian/patches/0012-CVE-2011-2204.patch
   trunk/tomcat6/debian/patches/0014-CVE-2011-1184.patch
   trunk/tomcat6/debian/patches/0015-CVE-2011-2526.patch
Modified:
   trunk/tomcat6/debian/changelog
   trunk/tomcat6/debian/control
   trunk/tomcat6/debian/patches/series
   trunk/tomcat6/debian/tomcat6.init
   trunk/tomcat6/debian/watch
Log:
changes for 6.0.33-1 upload

Modified: trunk/tomcat6/debian/changelog
===================================================================
--- trunk/tomcat6/debian/changelog      2011-11-28 22:47:11 UTC (rev 15471)
+++ trunk/tomcat6/debian/changelog      2011-11-29 05:29:50 UTC (rev 15472)
@@ -1,11 +1,19 @@
-tomcat6 (6.0.32-8) UNRELEASED; urgency=low
+tomcat6 (6.0.33-1) unstable; urgency=low
 
   * Team upload.
+  * New upstream release.  
+  * Remove the following patches (included upstream):
+    - 0011-623242.patch
+    - 0012-CVE-2011-2204.patch
+    - 0015-CVE-2011-2526.patch
+    - 0014-CVE-2011-1184.patch
   * Add patch for multi-instance startup.  CATALINA_HOME no longer
     depends on the instance $NAME.  JVM_TMP is now $NAME-specific.
     - Thank you to Julien Wajsberg. (Closes: #644365)
+  * Add dependency on JRE to tomcat6-common (Closes: #644340)
+  * Modify init script to look for JVM in /usr/lib/jvm/default-java
 
- -- tony mancill <tmanc...@debian.org>  Tue, 08 Nov 2011 13:41:40 -0800
+ -- tony mancill <tmanc...@debian.org>  Mon, 28 Nov 2011 21:28:52 -0800
 
 tomcat6 (6.0.32-7) unstable; urgency=medium
 

Modified: trunk/tomcat6/debian/control
===================================================================
--- trunk/tomcat6/debian/control        2011-11-28 22:47:11 UTC (rev 15471)
+++ trunk/tomcat6/debian/control        2011-11-29 05:29:50 UTC (rev 15472)
@@ -14,7 +14,8 @@
 
 Package: tomcat6-common
 Architecture: all
-Depends: libtomcat6-java (>= ${source:Version}), ${misc:Depends}
+Depends: libtomcat6-java (>= ${source:Version}), ${misc:Depends},
+ default-jre-headless | java-5-runtime | java-6-runtime
 Description: Servlet and JSP engine -- common files
  Apache Tomcat implements the Java Servlet and the JavaServer Pages (JSP)
  specifications from Sun Microsystems, and provides a "pure Java" HTTP web

Deleted: trunk/tomcat6/debian/patches/0011-623242.patch
===================================================================
--- trunk/tomcat6/debian/patches/0011-623242.patch      2011-11-28 22:47:11 UTC 
(rev 15471)
+++ trunk/tomcat6/debian/patches/0011-623242.patch      2011-11-29 05:29:50 UTC 
(rev 15472)
@@ -1,53 +0,0 @@
-From: tony mancill <tmanc...@debian.org>
-Date: Mon Apr 18 20:44:47 PDT 2011
-Subject: Context parameters are being overridden with parameters from the web 
application deployment descriptor
-Source: upstream, http://svn.apache.org/viewvc?view=revision&revision=1080224
-Bug: https://issues.apache.org/bugzilla/show_bug.cgi?id=50700
-Forwarded: not-needed
-
---- a/java/org/apache/catalina/core/StandardContext.java 2011/03/10 13:52:10 
1080223
-+++ b/java/org/apache/catalina/core/StandardContext.java 2011/03/10 13:52:41 
1080224
-@@ -31,6 +31,7 @@
- import java.util.HashMap;
- import java.util.Hashtable;
- import java.util.Iterator;
-+import java.util.Map;
- import java.util.Stack;
- import java.util.TreeMap;
- 
-@@ -4805,23 +4806,29 @@
-      * the application parameters appropriately.
-      */
-     private void mergeParameters() {
-+        Map<String,String> mergedParams = new HashMap<String,String>();
-+        
-         String names[] = findParameters();
-         for (int i = 0; i < names.length; i++) {
--            context.setInitParameter(names[i], findParameter(names[i]));
-+            mergedParams.put(names[i], findParameter(names[i]));
-         }
- 
-         ApplicationParameter params[] = findApplicationParameters();
-         for (int i = 0; i < params.length; i++) {
-             if (params[i].getOverride()) {
--                if (context.getInitParameter(params[i].getName()) == null) {
--                    context.setInitParameter(params[i].getName(),
-+                if (mergedParams.get(params[i].getName()) == null) {
-+                    mergedParams.put(params[i].getName(),
-                             params[i].getValue());
-                 }
-             } else {
--                context.setInitParameter(params[i].getName(),
--                        params[i].getValue());
-+                mergedParams.put(params[i].getName(), params[i].getValue());
-             }
-         }
-+        
-+        for (Map.Entry<String,String> entry : mergedParams.entrySet()) {
-+            context.setInitParameter(entry.getKey(), entry.getValue());
-+        }
-+
-     }
- 
-     
-

Deleted: trunk/tomcat6/debian/patches/0012-CVE-2011-2204.patch
===================================================================
--- trunk/tomcat6/debian/patches/0012-CVE-2011-2204.patch       2011-11-28 
22:47:11 UTC (rev 15471)
+++ trunk/tomcat6/debian/patches/0012-CVE-2011-2204.patch       2011-11-29 
05:29:50 UTC (rev 15472)
@@ -1,170 +0,0 @@
-From: tony mancill <tmanc...@debian.org>
-Date: Wed Jul 06 21:21:17 PDT 2011
-Subject: CVE-2011-2204
-Source: upstream, http://svn.apache.org/viewvc?view=revision&revision=1140071
-Forwarded: not-needed
-
-Index: tc6.0.x/trunk/java/org/apache/catalina/users/MemoryUser.java
-===================================================================
---- a/java/org/apache/catalina/users/MemoryUser.java   (revision 1140070)
-+++ b/java/org/apache/catalina/users/MemoryUser.java   (revision 1140071)
-@@ -246,7 +246,7 @@
-      * <code>username</code> or </code>name</code> for the username
-      * property.</p>
-      */
--    public String toString() {
-+    public String toXml() {
- 
-         StringBuffer sb = new StringBuffer("<user username=\"");
-         sb.append(RequestUtil.filter(username));
-@@ -293,5 +293,52 @@
- 
-     }
- 
-+    /**
-+     * <p>Return a String representation of this user.</p>
-+     */
-+    @Override
-+    public String toString() {
- 
-+        StringBuilder sb = new StringBuilder("User username=\"");
-+        sb.append(RequestUtil.filter(username));
-+        sb.append("\"");
-+        if (fullName != null) {
-+            sb.append(", fullName=\"");
-+            sb.append(RequestUtil.filter(fullName));
-+            sb.append("\"");
-+        }
-+        synchronized (groups) {
-+            if (groups.size() > 0) {
-+                sb.append(", groups=\"");
-+                int n = 0;
-+                Iterator<Group> values = groups.iterator();
-+                while (values.hasNext()) {
-+                    if (n > 0) {
-+                        sb.append(',');
-+                    }
-+                    n++;
-+                    
sb.append(RequestUtil.filter(values.next().getGroupname()));
-+                }
-+                sb.append("\"");
-+            }
-+        }
-+        synchronized (roles) {
-+            if (roles.size() > 0) {
-+                sb.append(", roles=\"");
-+                int n = 0;
-+                Iterator<Role> values = roles.iterator();
-+                while (values.hasNext()) {
-+                    if (n > 0) {
-+                        sb.append(',');
-+                    }
-+                    n++;
-+                    
sb.append(RequestUtil.filter(values.next().getRolename()));
-+                }
-+                sb.append("\"");
-+            }
-+        }
-+        return (sb.toString());
-+    }
-+
-+
- }
-Index: tc6.0.x/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java
-===================================================================
---- a/java/org/apache/catalina/users/MemoryUserDatabase.java   (revision 
1140070)
-+++ b/java/org/apache/catalina/users/MemoryUserDatabase.java   (revision 
1140071)
-@@ -549,7 +549,7 @@
-             values = getUsers();
-             while (values.hasNext()) {
-                 writer.print("  ");
--                writer.println(values.next());
-+                writer.println(((MemoryUser) values.next()).toXml());
-             }
- 
-             // Print the file epilog
-Index: 
tc6.0.x/trunk/java/org/apache/catalina/mbeans/MemoryUserDatabaseMBean.java
-===================================================================
---- a/java/org/apache/catalina/mbeans/MemoryUserDatabaseMBean.java     
(revision 1140070)
-+++ b/java/org/apache/catalina/mbeans/MemoryUserDatabaseMBean.java     
(revision 1140071)
-@@ -180,7 +180,7 @@
-             MBeanUtils.createMBean(group);
-         } catch (Exception e) {
-             IllegalArgumentException iae = new IllegalArgumentException
--                ("Exception creating group " + group + " MBean");
-+                ("Exception creating group [" + groupname + "] MBean");
-             iae.initCause(e);
-             throw iae;
-         }
-@@ -203,7 +203,7 @@
-             MBeanUtils.createMBean(role);
-         } catch (Exception e) {
-             IllegalArgumentException iae = new IllegalArgumentException
--                ("Exception creating role " + role + " MBean");
-+                ("Exception creating role [" + rolename + "] MBean");
-             iae.initCause(e);
-             throw iae;
-         }
-@@ -228,7 +228,7 @@
-             MBeanUtils.createMBean(user);
-         } catch (Exception e) {
-             IllegalArgumentException iae = new IllegalArgumentException
--                ("Exception creating user " + user + " MBean");
-+                ("Exception creating user [" + username + "] MBean");
-             iae.initCause(e);
-             throw iae;
-         }
-@@ -256,7 +256,7 @@
-             return (oname.toString());
-         } catch (MalformedObjectNameException e) {
-             IllegalArgumentException iae = new IllegalArgumentException
--                ("Cannot create object name for group " + group);
-+                ("Cannot create object name for group [" + groupname + "]");
-             iae.initCause(e);
-             throw iae;
-         }
-@@ -283,7 +283,7 @@
-             return (oname.toString());
-         } catch (MalformedObjectNameException e) {
-             IllegalArgumentException iae = new IllegalArgumentException
--                ("Cannot create object name for role " + role);
-+                ("Cannot create object name for role [" + rolename + "]");
-             iae.initCause(e);
-             throw iae;
-         }
-@@ -310,7 +310,7 @@
-             return (oname.toString());
-         } catch (MalformedObjectNameException e) {
-             IllegalArgumentException iae = new IllegalArgumentException
--                ("Cannot create object name for user " + user);
-+                ("Cannot create object name for user [" + username + "]");
-             iae.initCause(e);
-             throw iae;
-         }
-@@ -335,7 +335,7 @@
-             database.removeGroup(group);
-         } catch (Exception e) {
-             IllegalArgumentException iae = new IllegalArgumentException
--                ("Exception destroying group " + group + " MBean");
-+                ("Exception destroying group [" + groupname + "] MBean");
-             iae.initCause(e);
-             throw iae;
-         }
-@@ -360,7 +360,7 @@
-             database.removeRole(role);
-         } catch (Exception e) {
-             IllegalArgumentException iae = new IllegalArgumentException
--                ("Exception destroying role " + role + " MBean");
-+                ("Exception destroying role [" + rolename + "] MBean");
-             iae.initCause(e);
-             throw iae;
-         }
-@@ -385,7 +385,7 @@
-             database.removeUser(user);
-         } catch (Exception e) {
-             IllegalArgumentException iae = new IllegalArgumentException
--                ("Exception destroying user " + user + " MBean");
-+                ("Exception destroying user [" + username + "] MBean");
-             iae.initCause(e);
-             throw iae;
-         }

Deleted: trunk/tomcat6/debian/patches/0014-CVE-2011-1184.patch
===================================================================
--- trunk/tomcat6/debian/patches/0014-CVE-2011-1184.patch       2011-11-28 
22:47:11 UTC (rev 15471)
+++ trunk/tomcat6/debian/patches/0014-CVE-2011-1184.patch       2011-11-29 
05:29:50 UTC (rev 15472)
@@ -1,798 +0,0 @@
-Description: fix HTTP DIGEST authentication weaknesses
-Origin: upstream, http://svn.apache.org/viewvc?view=revision&revision=1158180
-
-Index: 
tomcat6-6.0.32/java/org/apache/catalina/authenticator/DigestAuthenticator.java
-===================================================================
---- 
tomcat6-6.0.32.orig/java/org/apache/catalina/authenticator/DigestAuthenticator.java
        2010-04-29 11:00:41.000000000 -0400
-+++ 
tomcat6-6.0.32/java/org/apache/catalina/authenticator/DigestAuthenticator.java  
   2011-10-13 16:38:43.989355250 -0400
-@@ -23,11 +23,14 @@
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
- import java.security.Principal;
-+import java.util.LinkedHashMap;
-+import java.util.Map;
- import java.util.StringTokenizer;
- 
- import javax.servlet.http.HttpServletResponse;
- 
- 
-+import org.apache.catalina.LifecycleException;
- import org.apache.catalina.Realm;
- import org.apache.catalina.connector.Request;
- import org.apache.catalina.connector.Response;
-@@ -47,8 +50,8 @@
-  * @version $Id: DigestAuthenticator.java 939336 2010-04-29 15:00:41Z 
kkolinko $
-  */
- 
--public class DigestAuthenticator
--    extends AuthenticatorBase {
-+public class DigestAuthenticator extends AuthenticatorBase {
-+
-     private static Log log = LogFactory.getLog(DigestAuthenticator.class);
- 
- 
-@@ -67,6 +70,11 @@
-         "org.apache.catalina.authenticator.DigestAuthenticator/1.0";
- 
- 
-+    /**
-+     * Tomcat's DIGEST implementation only supports auth quality of 
protection.
-+     */
-+    protected static final String QOP = "auth";
-+
-     // ----------------------------------------------------------- 
Constructors
- 
- 
-@@ -92,17 +100,49 @@
- 
- 
-     /**
-+     * List of client nonce values currently being tracked
-+     */
-+    protected Map<String,NonceInfo> cnonces;
-+
-+
-+    /**
-+     * Maximum number of client nonces to keep in the cache. If not specified,
-+     * the default value of 1000 is used.
-+     */
-+    protected int cnonceCacheSize = 1000;
-+
-+
-+    /**
-      * Private key.
-      */
--    protected String key = "Catalina";
-+    protected String key = null;
- 
- 
--    // ------------------------------------------------------------- 
Properties
-+    /**
-+     * How long server nonces are valid for in milliseconds. Defaults to 5
-+     * minutes.
-+     */
-+    protected long nonceValidity = 5 * 60 * 1000;
-+
-+
-+    /**
-+     * Opaque string.
-+     */
-+    protected String opaque;
- 
- 
-     /**
-+     * Should the URI be validated as required by RFC2617? Can be disabled in
-+     * reverse proxies where the proxy has modified the URI.
-+     */
-+    protected boolean validateUri = true;
-+
-+    // ------------------------------------------------------------- 
Properties
-+
-+    /**
-      * Return descriptive information about this Valve implementation.
-      */
-+    @Override
-     public String getInfo() {
- 
-         return (info);
-@@ -110,9 +150,58 @@
-     }
- 
- 
--    // --------------------------------------------------------- Public 
Methods
-+    public int getCnonceCacheSize() {
-+        return cnonceCacheSize;
-+    }
-+
-+
-+    public void setCnonceCacheSize(int cnonceCacheSize) {
-+        this.cnonceCacheSize = cnonceCacheSize;
-+    }
-+
-+
-+    public String getKey() {
-+        return key;
-+    }
-+
-+
-+    public void setKey(String key) {
-+        this.key = key;
-+    }
-+
-+
-+    public long getNonceValidity() {
-+        return nonceValidity;
-+    }
-+
-+
-+    public void setNonceValidity(long nonceValidity) {
-+        this.nonceValidity = nonceValidity;
-+    }
-+
-+
-+    public String getOpaque() {
-+        return opaque;
-+    }
-+
-+
-+    public void setOpaque(String opaque) {
-+        this.opaque = opaque;
-+    }
-+
-+
-+    public boolean isValidateUri() {
-+        return validateUri;
-+    }
-+
-+
-+    public void setValidateUri(boolean validateUri) {
-+        this.validateUri = validateUri;
-+    }
- 
- 
-+    // --------------------------------------------------------- Public 
Methods
-+
-     /**
-      * Authenticate the user making this request, based on the specified
-      * login configuration.  Return <code>true</code> if any specified
-@@ -126,6 +215,7 @@
-      *
-      * @exception IOException if an input/output error occurs
-      */
-+    @Override
-     public boolean authenticate(Request request,
-                                 Response response,
-                                 LoginConfig config)
-@@ -172,8 +262,13 @@
- 
-         // Validate any credentials already included with this request
-         String authorization = request.getHeader("authorization");
-+        DigestInfo digestInfo = new DigestInfo(getOpaque(), 
getNonceValidity(),
-+                getKey(), cnonces, isValidateUri());
-         if (authorization != null) {
--            principal = findPrincipal(request, authorization, 
context.getRealm());
-+            if (digestInfo.validate(request, authorization, config)) {
-+                principal = digestInfo.authenticate(context.getRealm());
-+            }
-+            
-             if (principal != null) {
-                 String username = parseUsername(authorization);
-                 register(request, response, principal,
-@@ -185,11 +280,12 @@
- 
-         // Send an "unauthorized" response and an appropriate challenge
- 
--        // Next, generate a nOnce token (that is a token which is supposed
-+        // Next, generate a nonce token (that is a token which is supposed
-         // to be unique).
--        String nOnce = generateNOnce(request);
-+        String nonce = generateNonce(request);
- 
--        setAuthenticateHeader(request, response, config, nOnce);
-+        setAuthenticateHeader(request, response, config, nonce,
-+                digestInfo.isNonceStale());
-         response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
-         //      hres.flushBuffer();
-         return (false);
-@@ -201,92 +297,6 @@
- 
- 
-     /**
--     * Parse the specified authorization credentials, and return the
--     * associated Principal that these credentials authenticate (if any)
--     * from the specified Realm.  If there is no such Principal, return
--     * <code>null</code>.
--     *
--     * @param request HTTP servlet request
--     * @param authorization Authorization credentials from this request
--     * @param realm Realm used to authenticate Principals
--     */
--    protected static Principal findPrincipal(Request request,
--                                             String authorization,
--                                             Realm realm) {
--
--        //System.out.println("Authorization token : " + authorization);
--        // Validate the authorization credentials format
--        if (authorization == null)
--            return (null);
--        if (!authorization.startsWith("Digest "))
--            return (null);
--        authorization = authorization.substring(7).trim();
--
--        // Bugzilla 37132: 
http://issues.apache.org/bugzilla/show_bug.cgi?id=37132
--        String[] tokens = authorization.split(",(?=(?:[^\"]*\"[^\"]*\")+$)");
--
--        String userName = null;
--        String realmName = null;
--        String nOnce = null;
--        String nc = null;
--        String cnonce = null;
--        String qop = null;
--        String uri = null;
--        String response = null;
--        String method = request.getMethod();
--
--        for (int i = 0; i < tokens.length; i++) {
--            String currentToken = tokens[i];
--            if (currentToken.length() == 0)
--                continue;
--
--            int equalSign = currentToken.indexOf('=');
--            if (equalSign < 0)
--                return null;
--            String currentTokenName =
--                currentToken.substring(0, equalSign).trim();
--            String currentTokenValue =
--                currentToken.substring(equalSign + 1).trim();
--            if ("username".equals(currentTokenName))
--                userName = removeQuotes(currentTokenValue);
--            if ("realm".equals(currentTokenName))
--                realmName = removeQuotes(currentTokenValue, true);
--            if ("nonce".equals(currentTokenName))
--                nOnce = removeQuotes(currentTokenValue);
--            if ("nc".equals(currentTokenName))
--                nc = removeQuotes(currentTokenValue);
--            if ("cnonce".equals(currentTokenName))
--                cnonce = removeQuotes(currentTokenValue);
--            if ("qop".equals(currentTokenName))
--                qop = removeQuotes(currentTokenValue);
--            if ("uri".equals(currentTokenName))
--                uri = removeQuotes(currentTokenValue);
--            if ("response".equals(currentTokenName))
--                response = removeQuotes(currentTokenValue);
--        }
--
--        if ( (userName == null) || (realmName == null) || (nOnce == null)
--             || (uri == null) || (response == null) )
--            return null;
--
--        // Second MD5 digest used to calculate the digest :
--        // MD5(Method + ":" + uri)
--        String a2 = method + ":" + uri;
--        //System.out.println("A2:" + a2);
--
--        byte[] buffer = null;
--        synchronized (md5Helper) {
--            buffer = md5Helper.digest(a2.getBytes());
--        }
--        String md5a2 = md5Encoder.encode(buffer);
--
--        return (realm.authenticate(userName, response, nOnce, nc, cnonce, qop,
--                                   realmName, md5a2));
--
--    }
--
--
--    /**
-      * Parse the username from the specified authorization string.  If none
-      * can be identified, return <code>null</code>
-      *
-@@ -294,7 +304,6 @@
-      */
-     protected String parseUsername(String authorization) {
- 
--        //System.out.println("Authorization token : " + authorization);
-         // Validate the authorization credentials format
-         if (authorization == null)
-             return (null);
-@@ -354,20 +363,20 @@
-      *
-      * @param request HTTP Servlet request
-      */
--    protected String generateNOnce(Request request) {
-+    protected String generateNonce(Request request) {
- 
-         long currentTime = System.currentTimeMillis();
- 
--        String nOnceValue = request.getRemoteAddr() + ":" +
--            currentTime + ":" + key;
-+        
-+        String ipTimeKey =
-+            request.getRemoteAddr() + ":" + currentTime + ":" + getKey();
- 
--        byte[] buffer = null;
-+        byte[] buffer;
-         synchronized (md5Helper) {
--            buffer = md5Helper.digest(nOnceValue.getBytes());
-+            buffer = md5Helper.digest(ipTimeKey.getBytes());
-         }
--        nOnceValue = md5Encoder.encode(buffer);
- 
--        return nOnceValue;
-+        return currentTime + ":" + md5Encoder.encode(buffer);
-     }
- 
- 
-@@ -379,7 +388,7 @@
-      *      WWW-Authenticate    = "WWW-Authenticate" ":" "Digest"
-      *                            digest-challenge
-      *
--     *      digest-challenge    = 1#( realm | [ domain ] | nOnce |
-+     *      digest-challenge    = 1#( realm | [ domain ] | nonce |
-      *                  [ digest-opaque ] |[ stale ] | [ algorithm ] )
-      *
-      *      realm               = "realm" "=" realm-value
-@@ -396,29 +405,303 @@
-      * @param response HTTP Servlet response
-      * @param config    Login configuration describing how authentication
-      *              should be performed
--     * @param nOnce nonce token
-+     * @param nonce nonce token
-      */
-     protected void setAuthenticateHeader(Request request,
-                                          Response response,
-                                          LoginConfig config,
--                                         String nOnce) {
-+                                         String nonce,
-+                                         boolean isNonceStale) {
- 
-         // Get the realm name
-         String realmName = config.getRealmName();
-         if (realmName == null)
-             realmName = REALM_NAME;
- 
--        byte[] buffer = null;
--        synchronized (md5Helper) {
--            buffer = md5Helper.digest(nOnce.getBytes());
-+        String authenticateHeader;
-+        if (isNonceStale) {
-+            authenticateHeader = "Digest realm=\"" + realmName + "\", " +
-+            "qop=\"" + QOP + "\", nonce=\"" + nonce + "\", " + "opaque=\"" +
-+            getOpaque() + "\", stale=true";
-+        } else {
-+            authenticateHeader = "Digest realm=\"" + realmName + "\", " +
-+            "qop=\"" + QOP + "\", nonce=\"" + nonce + "\", " + "opaque=\"" +
-+            getOpaque() + "\"";
-         }
- 
--        String authenticateHeader = "Digest realm=\"" + realmName + "\", "
--            +  "qop=\"auth\", nonce=\"" + nOnce + "\", " + "opaque=\""
--            + md5Encoder.encode(buffer) + "\"";
-         response.setHeader("WWW-Authenticate", authenticateHeader);
- 
-     }
- 
- 
-+    // ------------------------------------------------------- Lifecycle 
Methods
-+    
-+    @Override
-+    public void start() throws LifecycleException {
-+        super.start();
-+        
-+        // Generate a random secret key
-+        if (getKey() == null) {
-+            setKey(generateSessionId());
-+        }
-+        
-+        // Generate the opaque string the same way
-+        if (getOpaque() == null) {
-+            setOpaque(generateSessionId());
-+        }
-+        
-+        cnonces = new LinkedHashMap<String, DigestAuthenticator.NonceInfo>() {
-+
-+            private static final long serialVersionUID = 1L;
-+            private static final long LOG_SUPPRESS_TIME = 5 * 60 * 1000;
-+
-+            private long lastLog = 0;
-+
-+            @Override
-+            protected boolean removeEldestEntry(
-+                    Map.Entry<String,NonceInfo> eldest) {
-+                // This is called from a sync so keep it simple
-+                long currentTime = System.currentTimeMillis();
-+                if (size() > getCnonceCacheSize()) {
-+                    if (lastLog < currentTime &&
-+                            currentTime - eldest.getValue().getTimestamp() <
-+                            getNonceValidity()) {
-+                        // Replay attack is possible
-+                        log.warn(sm.getString(
-+                                "digestAuthenticator.cacheRemove"));
-+                        lastLog = currentTime + LOG_SUPPRESS_TIME;
-+                    }
-+                    return true;
-+                }
-+                return false;
-+            }
-+        };
-+    }
-+ 
-+    private static class DigestInfo {
-+
-+        private String opaque;
-+        private long nonceValidity;
-+        private String key;
-+        private Map<String,NonceInfo> cnonces;
-+        private boolean validateUri = true;
-+
-+        private String userName = null;
-+        private String method = null;
-+        private String uri = null;
-+        private String response = null;
-+        private String nonce = null;
-+        private String nc = null;
-+        private String cnonce = null;
-+        private String realmName = null;
-+        private String qop = null;
-+
-+        private boolean nonceStale = false;
-+
-+
-+        public DigestInfo(String opaque, long nonceValidity, String key,
-+                Map<String,NonceInfo> cnonces, boolean validateUri) {
-+            this.opaque = opaque;
-+            this.nonceValidity = nonceValidity;
-+            this.key = key;
-+            this.cnonces = cnonces;
-+            this.validateUri = validateUri;
-+        }
-+
-+        public boolean validate(Request request, String authorization,
-+                LoginConfig config) {
-+            // Validate the authorization credentials format
-+            if (authorization == null) {
-+                return false;
-+            }
-+            if (!authorization.startsWith("Digest ")) {
-+                return false;
-+            }
-+            authorization = authorization.substring(7).trim();
-+
-+            // Bugzilla 37132: 
http://issues.apache.org/bugzilla/show_bug.cgi?id=37132
-+            String[] tokens = 
authorization.split(",(?=(?:[^\"]*\"[^\"]*\")+$)");
-+
-+            method = request.getMethod();
-+            String opaque = null;
-+
-+            for (int i = 0; i < tokens.length; i++) {
-+                String currentToken = tokens[i];
-+                if (currentToken.length() == 0)
-+                    continue;
-+
-+                int equalSign = currentToken.indexOf('=');
-+                if (equalSign < 0) {
-+                    return false;
-+                }
-+                String currentTokenName =
-+                    currentToken.substring(0, equalSign).trim();
-+                String currentTokenValue =
-+                    currentToken.substring(equalSign + 1).trim();
-+                if ("username".equals(currentTokenName))
-+                    userName = removeQuotes(currentTokenValue);
-+                if ("realm".equals(currentTokenName))
-+                    realmName = removeQuotes(currentTokenValue, true);
-+                if ("nonce".equals(currentTokenName))
-+                    nonce = removeQuotes(currentTokenValue);
-+                if ("nc".equals(currentTokenName))
-+                    nc = removeQuotes(currentTokenValue);
-+                if ("cnonce".equals(currentTokenName))
-+                    cnonce = removeQuotes(currentTokenValue);
-+                if ("qop".equals(currentTokenName))
-+                    qop = removeQuotes(currentTokenValue);
-+                if ("uri".equals(currentTokenName))
-+                    uri = removeQuotes(currentTokenValue);
-+                if ("response".equals(currentTokenName))
-+                    response = removeQuotes(currentTokenValue);
-+                if ("opaque".equals(currentTokenName))
-+                    opaque = removeQuotes(currentTokenValue);
-+            }
-+
-+            if ( (userName == null) || (realmName == null) || (nonce == null)
-+                 || (uri == null) || (response == null) ) {
-+                return false;
-+            }
-+
-+            // Validate the URI - should match the request line sent by client
-+            if (validateUri) {
-+                String uriQuery;
-+                String query = request.getQueryString();
-+                if (query == null) {
-+                    uriQuery = request.getRequestURI();
-+                } else {
-+                    uriQuery = request.getRequestURI() + "?" + query;
-+                }
-+                if (!uri.equals(uriQuery)) {
-+                    return false;
-+                }
-+            }
-+
-+            // Validate the Realm name
-+            String lcRealm = config.getRealmName();
-+            if (lcRealm == null) {
-+                lcRealm = REALM_NAME;
-+            }
-+            if (!lcRealm.equals(realmName)) {
-+                return false;
-+            }
-+            
-+            // Validate the opaque string
-+            if (!this.opaque.equals(opaque)) {
-+                return false;
-+            }
-+
-+            // Validate nonce
-+            int i = nonce.indexOf(":");
-+            if (i < 0 || (i + 1) == nonce.length()) {
-+                return false;
-+            }
-+            long nonceTime;
-+            try {
-+                nonceTime = Long.parseLong(nonce.substring(0, i));
-+            } catch (NumberFormatException nfe) {
-+                return false;
-+            }
-+            String md5clientIpTimeKey = nonce.substring(i + 1);
-+            long currentTime = System.currentTimeMillis();
-+            if ((currentTime - nonceTime) > nonceValidity) {
-+                nonceStale = true;
-+                return false;
-+            }
-+            String serverIpTimeKey =
-+                request.getRemoteAddr() + ":" + nonceTime + ":" + key;
-+            byte[] buffer = null;
-+            synchronized (md5Helper) {
-+                buffer = md5Helper.digest(serverIpTimeKey.getBytes());
-+            }
-+            String md5ServerIpTimeKey = md5Encoder.encode(buffer);
-+            if (!md5ServerIpTimeKey.equals(md5clientIpTimeKey)) {
-+                return false;
-+            }
-+
-+            // Validate qop
-+            if (qop != null && !QOP.equals(qop)) {
-+                return false;
-+            }
-+
-+            // Validate cnonce and nc
-+            // Check if presence of nc and nonce is consistent with presence 
of qop
-+            if (qop == null) {
-+                if (cnonce != null || nc != null) {
-+                    return false;
-+                }
-+            } else {
-+                if (cnonce == null || nc == null) {
-+                    return false;
-+                }
-+                if (nc.length() != 8) {
-+                    return false;
-+                }
-+                long count;
-+                try {
-+                    count = Long.parseLong(nc, 16);
-+                } catch (NumberFormatException nfe) {
-+                    return false;
-+                }
-+                NonceInfo info;
-+                synchronized (cnonces) {
-+                    info = cnonces.get(cnonce);
-+                }
-+                if (info == null) {
-+                    info = new NonceInfo();
-+                } else {
-+                    if (count <= info.getCount()) {
-+                        return false;
-+                    }
-+                }
-+                info.setCount(count);
-+                info.setTimestamp(currentTime);
-+                synchronized (cnonces) {
-+                    cnonces.put(cnonce, info);
-+                }
-+            }
-+            return true;
-+        }
-+
-+        public boolean isNonceStale() {
-+            return nonceStale;
-+        }
-+
-+        public Principal authenticate(Realm realm) {
-+            // Second MD5 digest used to calculate the digest :
-+            // MD5(Method + ":" + uri)
-+            String a2 = method + ":" + uri;
-+
-+            byte[] buffer;
-+            synchronized (md5Helper) {
-+                buffer = md5Helper.digest(a2.getBytes());
-+            }
-+            String md5a2 = md5Encoder.encode(buffer);
-+
-+            return realm.authenticate(userName, response, nonce, nc, cnonce,
-+                    qop, realmName, md5a2);
-+        }
-+
-+    }
-+
-+    private static class NonceInfo {
-+        private volatile long count;
-+        private volatile long timestamp;
-+        
-+        public void setCount(long l) {
-+            count = l;
-+        }
-+        
-+        public long getCount() {
-+            return count;
-+        }
-+        
-+        public void setTimestamp(long l) {
-+            timestamp = l;
-+        }
-+        
-+        public long getTimestamp() {
-+            return timestamp;
-+        }
-+    }
- }
-Index: 
tomcat6-6.0.32/java/org/apache/catalina/authenticator/LocalStrings.properties
-===================================================================
---- 
tomcat6-6.0.32.orig/java/org/apache/catalina/authenticator/LocalStrings.properties
 2009-12-21 07:56:09.000000000 -0500
-+++ 
tomcat6-6.0.32/java/org/apache/catalina/authenticator/LocalStrings.properties   
   2011-10-13 16:38:43.989355250 -0400
-@@ -28,5 +28,7 @@
- authenticator.unauthorized=Cannot authenticate with the provided credentials
- authenticator.userDataConstraint=This request violates a User Data constraint 
for this application
- 
-+digestAuthenticator.cacheRemove=A valid entry has been removed from client 
nonce cache to make room for new entries. A replay attack is now possible. To 
prevent the possibility of replay attacks, reduce nonceValidity or increase 
cnonceCacheSize. Further warnings of this type will be suppressed for 5 minutes.
-+ 
- formAuthenticator.forwardErrorFail=Unexpected error forwarding to error page
- formAuthenticator.forwardLoginFail=Unexpected error forwarding to login page
-Index: 
tomcat6-6.0.32/java/org/apache/catalina/authenticator/mbeans-descriptors.xml
-===================================================================
---- 
tomcat6-6.0.32.orig/java/org/apache/catalina/authenticator/mbeans-descriptors.xml
  2007-08-04 19:30:01.000000000 -0400
-+++ 
tomcat6-6.0.32/java/org/apache/catalina/authenticator/mbeans-descriptors.xml    
   2011-10-13 16:38:43.989355250 -0400
-@@ -60,10 +60,30 @@
-                description="Fully qualified class name of the managed object"
-                type="java.lang.String"
-                writeable="false"/>
--      
-+
-+    <attribute name="cnonceCacheSize"
-+               description="The size of the cnonce cache used to prevent 
replay attacks"
-+               type="int"/>
-+
-     <attribute   name="entropy"
-                description="A String initialization parameter used to 
increase the  entropy of the initialization of our random number generator"
-                type="java.lang.String"/>
-+
-+    <attribute name="key"
-+               description="The secret key used by digest authentication"
-+               type="java.lang.String"/>
-+      
-+    <attribute name="nonceValidity"
-+               description="The time, in milliseconds, for which a server 
issued nonce will be valid"
-+               type="long"/>
-+
-+    <attribute name="opaque"
-+               description="The opaque server string used by digest 
authentication"
-+               type="java.lang.String"/>
-+
-+    <attribute name="validateUri"
-+               description="Should the uri be validated as required by 
RFC2617?"
-+               type="boolean"/>
-   </mbean>
-   
-   <mbean name="FormAuthenticator"
-Index: tomcat6-6.0.32/java/org/apache/catalina/realm/RealmBase.java
-===================================================================
---- tomcat6-6.0.32.orig/java/org/apache/catalina/realm/RealmBase.java  
2010-04-29 20:08:58.000000000 -0400
-+++ tomcat6-6.0.32/java/org/apache/catalina/realm/RealmBase.java       
2011-10-13 16:38:43.989355250 -0400
-@@ -353,22 +353,27 @@
-      *
-      * @param username Username of the Principal to look up
-      * @param clientDigest Digest which has been submitted by the client
--     * @param nOnce Unique (or supposedly unique) token which has been used
-+     * @param nonce Unique (or supposedly unique) token which has been used
-      * for this request
-      * @param realm Realm name
-      * @param md5a2 Second MD5 digest used to calculate the digest :
-      * MD5(Method + ":" + uri)
-      */
-     public Principal authenticate(String username, String clientDigest,
--                                  String nOnce, String nc, String cnonce,
-+                                  String nonce, String nc, String cnonce,
-                                   String qop, String realm,
-                                   String md5a2) {
- 
-         String md5a1 = getDigest(username, realm);
-         if (md5a1 == null)
-             return null;
--        String serverDigestValue = md5a1 + ":" + nOnce + ":" + nc + ":"
--            + cnonce + ":" + qop + ":" + md5a2;
-+        String serverDigestValue;
-+        if (qop == null) {
-+            serverDigestValue = md5a1 + ":" + nonce + ":" + md5a2;
-+        } else {
-+            serverDigestValue = md5a1 + ":" + nonce + ":" + nc + ":" +
-+                    cnonce + ":" + qop + ":" + md5a2;
-+        }
- 
-         byte[] valueBytes = null;
-         if(getDigestEncoding() == null) {
-@@ -390,7 +395,7 @@
- 
-         if (log.isDebugEnabled()) {
-             log.debug("Digest : " + clientDigest + " Username:" + username 
--                    + " ClientSigest:" + clientDigest + " nOnce:" + nOnce 
-+                    + " ClientSigest:" + clientDigest + " nonce:" + nonce 
-                     + " nc:" + nc + " cnonce:" + cnonce + " qop:" + qop 
-                     + " realm:" + realm + "md5a2:" + md5a2 
-                     + " Server digest:" + serverDigest);
-Index: tomcat6-6.0.32/webapps/docs/config/valve.xml
-===================================================================
---- tomcat6-6.0.32.orig/webapps/docs/config/valve.xml  2010-11-02 
15:26:07.000000000 -0400
-+++ tomcat6-6.0.32/webapps/docs/config/valve.xml       2011-10-13 
16:38:43.989355250 -0400
-@@ -460,6 +460,12 @@
-         used.</p>
-       </attribute>
- 
-+      <attribute name="cnonceCacheSize" required="false">
-+        <p>To protect against replay attacks, the DIGEST authenticator tracks
-+        client nonce and nonce count values. This attribute controls the size
-+        of that cache. If not specified, the default value of 1000 is 
used.</p>
-+      </attribute>
-+
-       <attribute name="disableProxyCaching" required="false">
-         <p>Controls the caching of pages that are protected by security
-         constraints. Setting this to <code>false</code> may help work around
-@@ -470,6 +476,26 @@
-         <code>true</code> will be used.</p>
-       </attribute>
- 
-+      <attribute name="key" required="false">
-+        <p>The secret key used by digest authentication. If not set, a secure
-+        random value is generated. This should normally only be set when it is
-+        necessary to keep key values constant either across server restarts
-+        and/or across a cluster.</p>
-+      </attribute>
-+
-+      <attribute name="nonceValidity" required="false">
-+        <p>The time, in milliseconds, that a server generated nonce will be
-+        considered valid for use in authentication. If not specified, the
-+        default value of 300000 (5 minutes) will be used.</p>
-+      </attribute>
-+
-+      <attribute name="opaque" required="false">
-+        <p>The opaque server string used by digest authentication. If not 
set, a
-+        random value is generated. This should normally only be set when it is
-+        necessary to keep opaque values constant either across server restarts
-+        and/or across a cluster.</p>
-+      </attribute>
-+
-       <attribute name="securePagesWithPragma" required="false">
-         <p>Controls the caching of pages that are protected by security
-         constraints. Setting this to <code>false</code> may help work around
-@@ -479,6 +505,14 @@
-         If not set, the default value of <code>true</code> will be used.</p>
-       </attribute>
- 
-+      <attribute name="validateUri" required="false">
-+        <p>Should the URI be validated as required by RFC2617? If not 
specified,
-+        the default value of <code>true</code> will be used. This should
-+        normally only be set when Tomcat is located behind a reverse proxy and
-+        the proxy is modifying the URI passed to Tomcat such that DIGEST
-+        authentication always fails.</p>
-+      </attribute>
-+
-     </attributes>
- 
-   </subsection>

Deleted: trunk/tomcat6/debian/patches/0015-CVE-2011-2526.patch
===================================================================
--- trunk/tomcat6/debian/patches/0015-CVE-2011-2526.patch       2011-11-28 
22:47:11 UTC (rev 15471)
+++ trunk/tomcat6/debian/patches/0015-CVE-2011-2526.patch       2011-11-29 
05:29:50 UTC (rev 15472)
@@ -1,144 +0,0 @@
-Description: fix file restriction bypass or denial of service via untrusted 
web application
-Origin: upstream, http://svn.apache.org/viewvc?view=revision&revision=1146703
-Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634992
-
-Index: 
tomcat6-6.0.32/java/org/apache/catalina/connector/LocalStrings.properties
-===================================================================
---- 
tomcat6-6.0.32.orig/java/org/apache/catalina/connector/LocalStrings.properties  
   2011-01-20 16:36:06.000000000 -0500
-+++ tomcat6-6.0.32/java/org/apache/catalina/connector/LocalStrings.properties  
2011-10-13 16:40:14.477357566 -0400
-@@ -61,6 +61,7 @@
- coyoteRequest.parseParameters=Exception thrown whilst processing POSTed 
parameters
- coyoteRequest.postTooLarge=Parameters were not parsed because the size of the 
posted data was too big. Use the maxPostSize attribute of the connector to 
resolve this if the application should accept large POSTs.
- coyoteRequest.chunkedPostTooLarge=Parameters were not parsed because the size 
of the posted data was too big. Because this request was a chunked request, it 
could not be processed further. Use the maxPostSize attribute of the connector 
to resolve this if the application should accept large POSTs.
-+coyoteRequest.sendfileNotCanonical=Unable to determine canonical name of file 
[{0}] specified for use with sendfile
- coyoteRequest.sessionEndAccessFail=Exception triggered ending access to 
session while recycling request
- 
- requestFacade.nullRequest=The request object has been recycled and is no 
longer associated with this facade
-Index: tomcat6-6.0.32/java/org/apache/catalina/connector/Request.java
-===================================================================
---- tomcat6-6.0.32.orig/java/org/apache/catalina/connector/Request.java        
2011-02-01 22:09:54.000000000 -0500
-+++ tomcat6-6.0.32/java/org/apache/catalina/connector/Request.java     
2011-10-13 16:39:36.549356595 -0400
-@@ -19,6 +19,7 @@
- package org.apache.catalina.connector;
- 
- 
-+import java.io.File;
- import java.io.InputStream;
- import java.io.IOException;
- import java.io.BufferedReader;
-@@ -1455,6 +1456,26 @@
-             return;
-         }
- 
-+        // Do the security check before any updates are made
-+        if (Globals.IS_SECURITY_ENABLED &&
-+                name.equals("org.apache.tomcat.sendfile.filename")) {
-+            // Use the canonical file name to avoid any possible symlink and
-+            // relative path issues
-+            String canonicalPath;
-+            try {
-+                canonicalPath = new File(value.toString()).getCanonicalPath();
-+            } catch (IOException e) {
-+                throw new SecurityException(sm.getString(
-+                        "coyoteRequest.sendfileNotCanonical", value), e);
-+            }
-+            // Sendfile is performed in Tomcat's security context so need to
-+            // check if the web app is permitted to access the file while 
still
-+            // in the web app's security context
-+            System.getSecurityManager().checkRead(canonicalPath);
-+            // Update the value so the canonical path is used
-+            value = canonicalPath;
-+        }
-+
-         oldValue = attributes.put(name, value);
-         if (oldValue != null) {
-             replaced = true;
-Index: tomcat6-6.0.32/java/org/apache/catalina/servlets/DefaultServlet.java
-===================================================================
---- tomcat6-6.0.32.orig/java/org/apache/catalina/servlets/DefaultServlet.java  
2011-01-20 12:08:54.000000000 -0500
-+++ tomcat6-6.0.32/java/org/apache/catalina/servlets/DefaultServlet.java       
2011-10-13 16:39:36.549356595 -0400
-@@ -1619,7 +1619,6 @@
-                 request.setAttribute("org.apache.tomcat.sendfile.start", new 
Long(range.start));
-                 request.setAttribute("org.apache.tomcat.sendfile.end", new 
Long(range.end + 1));
-             }
--            request.setAttribute("org.apache.tomcat.sendfile.token", this);
-             return true;
-         } else {
-             return false;
-Index: tomcat6-6.0.32/java/org/apache/coyote/http11/Http11AprProcessor.java
-===================================================================
---- tomcat6-6.0.32.orig/java/org/apache/coyote/http11/Http11AprProcessor.java  
2011-01-07 12:49:20.000000000 -0500
-+++ tomcat6-6.0.32/java/org/apache/coyote/http11/Http11AprProcessor.java       
2011-10-13 16:39:36.549356595 -0400
-@@ -910,7 +910,18 @@
-                 sendfileData.socket = socket;
-                 sendfileData.keepAlive = keepAlive;
-                 if (!endpoint.getSendfile().add(sendfileData)) {
--                    openSocket = true;
-+                    if (sendfileData.socket == 0) {
-+                        // Didn't send all the data but the socket is no 
longer
-+                        // set. Something went wrong. Close the connection.
-+                        // Too late to set status code.
-+                        if (log.isDebugEnabled()) {
-+                            log.debug(sm.getString(
-+                                    "http11processor.sendfile.error"));
-+                        }
-+                        error = true;
-+                    } else {
-+                        openSocket = true;
-+                    }
-                     break;
-                 }
-             }
-Index: tomcat6-6.0.32/java/org/apache/coyote/http11/LocalStrings.properties
-===================================================================
---- tomcat6-6.0.32.orig/java/org/apache/coyote/http11/LocalStrings.properties  
2009-05-02 21:29:42.000000000 -0400
-+++ tomcat6-6.0.32/java/org/apache/coyote/http11/LocalStrings.properties       
2011-10-13 16:39:36.549356595 -0400
-@@ -56,6 +56,7 @@
- http11processor.socket.info=Exception getting socket information
- http11processor.socket.ssl=Exception getting SSL attributes
- http11processor.socket.timeout=Error setting socket timeout
-+http11processor.sendfile.error=Error sending data using sendfile. May be 
caused by invalid request attributes for start/end points
- 
- #
- # InternalInputBuffer
-Index: tomcat6-6.0.32/java/org/apache/tomcat/util/net/AprEndpoint.java
-===================================================================
---- tomcat6-6.0.32.orig/java/org/apache/tomcat/util/net/AprEndpoint.java       
2011-02-01 03:07:46.000000000 -0500
-+++ tomcat6-6.0.32/java/org/apache/tomcat/util/net/AprEndpoint.java    
2011-10-13 16:41:23.769359341 -0400
-@@ -1812,7 +1812,9 @@
-                                                data.pos, data.end - data.pos, 
0);
-                     if (nw < 0) {
-                         if (!(-nw == Status.EAGAIN)) {
--                            destroySocket(data.socket);
-+                            Pool.destroy(data.fdpool);
-+                            // No need to close socket, this will be done by
-+                            // calling code since data.socket == 0
-                             data.socket = 0;
-                             return false;
-                         } else {
-Index: tomcat6-6.0.32/java/org/apache/tomcat/util/net/NioEndpoint.java
-===================================================================
---- tomcat6-6.0.32.orig/java/org/apache/tomcat/util/net/NioEndpoint.java       
2011-01-07 13:43:39.000000000 -0500
-+++ tomcat6-6.0.32/java/org/apache/tomcat/util/net/NioEndpoint.java    
2011-10-13 16:39:36.553356596 -0400
-@@ -1734,6 +1734,13 @@
-                         sd.pos += written;
-                         sd.length -= written;
-                         attachment.access();
-+                    } else {
-+                        // Unusual not to be able to transfer any bytes
-+                        // Check the length was set correctly
-+                        if (sd.fchannel.size() <= sd.pos) {
-+                            throw new IOException("Sendfile configured to " +
-+                                    "send more data than was available");
-+                        }
-                     }
-                 }
-                 if ( sd.length <= 0 && sc.getOutboundRemaining()<=0) {
-@@ -1758,6 +1765,7 @@
-                             log.debug("Send file connection is being closed");
-                         }
-                         cancelledKey(sk,SocketStatus.STOP,false);
-+                        return false;
-                     }
-                 } else if ( attachment.interestOps() == 0 && reg ) {
-                     if (log.isDebugEnabled()) {

Modified: trunk/tomcat6/debian/patches/series
===================================================================
--- trunk/tomcat6/debian/patches/series 2011-11-28 22:47:11 UTC (rev 15471)
+++ trunk/tomcat6/debian/patches/series 2011-11-29 05:29:50 UTC (rev 15472)
@@ -7,8 +7,4 @@
 0007-add-OSGi-headers-to-servlet-api.patch
 0008-add-OSGI-headers-to-jsp-api.patch
 0010-Use-java.security.policy-file-in-catalina.sh.patch
-0011-623242.patch
-0012-CVE-2011-2204.patch
 0013-CVE-2011-3190.patch
-0014-CVE-2011-1184.patch
-0015-CVE-2011-2526.patch

Modified: trunk/tomcat6/debian/tomcat6.init
===================================================================
--- trunk/tomcat6/debian/tomcat6.init   2011-11-28 22:47:11 UTC (rev 15471)
+++ trunk/tomcat6/debian/tomcat6.init   2011-11-29 05:29:50 UTC (rev 15472)
@@ -54,7 +54,7 @@
 
 # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
 # defined in $DEFAULT)
-JDK_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun 
/usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"
+JDK_DIRS="/usr/lib/jvm/default-java /usr/lib/jvm/java-6-openjdk 
/usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun 
/usr/lib/j2sdk1.5-ibm"
 
 # Look for the right JVM to use
 for jdir in $JDK_DIRS; do

Modified: trunk/tomcat6/debian/watch
===================================================================
--- trunk/tomcat6/debian/watch  2011-11-28 22:47:11 UTC (rev 15471)
+++ trunk/tomcat6/debian/watch  2011-11-29 05:29:50 UTC (rev 15472)
@@ -1,3 +1,3 @@
 version=3
 opts=uversionmangle=s/_/./g \
-  http://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/ 
TOMCAT_([0-9_]*[02468])/ debian debian/orig-tar.sh
+  http://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/ TOMCAT_([0-9_]*[0-9])/ 
debian debian/orig-tar.sh


_______________________________________________
pkg-java-commits mailing list
pkg-java-comm...@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

Reply via email to