From 4bc576e6d123ac12bc96fdac987bc9bb128ce607 Mon Sep 17 00:00:00 2001 From: markt Date: Thu, 7 Jul 2011 20:53:51 +0000 Subject: [PATCH] Use SecurityClassLoad to pre-load HexUtils to prevent a security exception git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1144031 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/security/SecurityClassLoad.java | 1 + java/org/apache/coyote/ajp/AjpAprProcessor.java | 6 ------ java/org/apache/coyote/ajp/AjpNioProcessor.java | 6 ------ java/org/apache/coyote/ajp/AjpProcessor.java | 6 ------ java/org/apache/coyote/http11/Http11AprProcessor.java | 5 ----- java/org/apache/coyote/http11/Http11NioProcessor.java | 6 +----- java/org/apache/coyote/http11/Http11Processor.java | 6 ------ 7 files changed, 2 insertions(+), 34 deletions(-) diff --git a/java/org/apache/catalina/security/SecurityClassLoad.java b/java/org/apache/catalina/security/SecurityClassLoad.java index bc332717a..97237236a 100644 --- a/java/org/apache/catalina/security/SecurityClassLoad.java +++ b/java/org/apache/catalina/security/SecurityClassLoad.java @@ -239,6 +239,7 @@ public final class SecurityClassLoad { private static final void loadTomcatPackage(ClassLoader loader) throws Exception { final String basePackage = "org.apache.tomcat."; + loader.loadClass(basePackage + "util.buf.HexUtils"); loader.loadClass(basePackage + "util.buf.StringCache"); loader.loadClass(basePackage + "util.buf.StringCache$ByteEntry"); loader.loadClass(basePackage + "util.buf.StringCache$CharEntry"); diff --git a/java/org/apache/coyote/ajp/AjpAprProcessor.java b/java/org/apache/coyote/ajp/AjpAprProcessor.java index 6cf6ac521..196f22d27 100644 --- a/java/org/apache/coyote/ajp/AjpAprProcessor.java +++ b/java/org/apache/coyote/ajp/AjpAprProcessor.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.coyote.ajp; import java.io.IOException; @@ -31,7 +30,6 @@ import org.apache.tomcat.jni.Socket; import org.apache.tomcat.jni.Status; import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.buf.ByteChunk; -import org.apache.tomcat.util.buf.HexUtils; import org.apache.tomcat.util.http.HttpMessages; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.AprEndpoint; @@ -77,12 +75,8 @@ public class AjpAprProcessor extends AbstractAjpProcessor { inputBuffer.limit(0); outputBuffer = ByteBuffer.allocateDirect(packetSize * 2); - // Cause loading of HexUtils - HexUtils.load(); - // Cause loading of HttpMessages HttpMessages.getMessage(200); - } diff --git a/java/org/apache/coyote/ajp/AjpNioProcessor.java b/java/org/apache/coyote/ajp/AjpNioProcessor.java index 555945f08..470ffba19 100644 --- a/java/org/apache/coyote/ajp/AjpNioProcessor.java +++ b/java/org/apache/coyote/ajp/AjpNioProcessor.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.coyote.ajp; import java.io.EOFException; @@ -31,7 +30,6 @@ import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.buf.ByteChunk; -import org.apache.tomcat.util.buf.HexUtils; import org.apache.tomcat.util.http.HttpMessages; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.NioChannel; @@ -68,12 +66,8 @@ public class AjpNioProcessor extends AbstractAjpProcessor { pool = endpoint.getSelectorPool(); - // Cause loading of HexUtils - HexUtils.load(); - // Cause loading of HttpMessages HttpMessages.getMessage(200); - } diff --git a/java/org/apache/coyote/ajp/AjpProcessor.java b/java/org/apache/coyote/ajp/AjpProcessor.java index fa1cf37cc..290e9738f 100644 --- a/java/org/apache/coyote/ajp/AjpProcessor.java +++ b/java/org/apache/coyote/ajp/AjpProcessor.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.coyote.ajp; import java.io.IOException; @@ -31,7 +30,6 @@ import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.buf.ByteChunk; -import org.apache.tomcat.util.buf.HexUtils; import org.apache.tomcat.util.http.HttpMessages; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.JIoEndpoint; @@ -71,12 +69,8 @@ public class AjpProcessor extends AbstractAjpProcessor { response.setOutputBuffer(new SocketOutputBuffer()); - // Cause loading of HexUtils - HexUtils.load(); - // Cause loading of HttpMessages HttpMessages.getMessage(200); - } diff --git a/java/org/apache/coyote/http11/Http11AprProcessor.java b/java/org/apache/coyote/http11/Http11AprProcessor.java index 56f9ef337..257977cd1 100644 --- a/java/org/apache/coyote/http11/Http11AprProcessor.java +++ b/java/org/apache/coyote/http11/Http11AprProcessor.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.coyote.http11; import java.io.ByteArrayInputStream; @@ -34,7 +33,6 @@ import org.apache.tomcat.jni.SSLSocket; import org.apache.tomcat.jni.Sockaddr; import org.apache.tomcat.jni.Socket; import org.apache.tomcat.util.ExceptionUtils; -import org.apache.tomcat.util.buf.HexUtils; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.AprEndpoint; import org.apache.tomcat.util.net.SSLSupport; @@ -71,9 +69,6 @@ public class Http11AprProcessor extends AbstractHttp11Processor { response.setOutputBuffer(outputBuffer); initializeFilters(maxTrailerSize); - - // Cause loading of HexUtils - HexUtils.load(); } diff --git a/java/org/apache/coyote/http11/Http11NioProcessor.java b/java/org/apache/coyote/http11/Http11NioProcessor.java index ecb041590..b35488fe7 100644 --- a/java/org/apache/coyote/http11/Http11NioProcessor.java +++ b/java/org/apache/coyote/http11/Http11NioProcessor.java @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.coyote.http11; + import java.io.IOException; import java.io.InterruptedIOException; import java.net.InetAddress; @@ -29,7 +29,6 @@ import org.apache.coyote.http11.filters.BufferedInputFilter; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.ExceptionUtils; -import org.apache.tomcat.util.buf.HexUtils; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.NioChannel; import org.apache.tomcat.util.net.NioEndpoint; @@ -75,9 +74,6 @@ public class Http11NioProcessor extends AbstractHttp11Processor { response.setOutputBuffer(outputBuffer); initializeFilters(maxTrailerSize); - - // Cause loading of HexUtils - HexUtils.load(); } diff --git a/java/org/apache/coyote/http11/Http11Processor.java b/java/org/apache/coyote/http11/Http11Processor.java index e332e71ce..4e25608ac 100644 --- a/java/org/apache/coyote/http11/Http11Processor.java +++ b/java/org/apache/coyote/http11/Http11Processor.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.coyote.http11; import java.io.EOFException; @@ -29,7 +28,6 @@ import org.apache.coyote.http11.filters.BufferedInputFilter; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.ExceptionUtils; -import org.apache.tomcat.util.buf.HexUtils; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.JIoEndpoint; import org.apache.tomcat.util.net.SSLSupport; @@ -66,10 +64,6 @@ public class Http11Processor extends AbstractHttp11Processor { response.setOutputBuffer(outputBuffer); initializeFilters(maxTrailerSize); - - // Cause loading of HexUtils - HexUtils.load(); - } -- 2.11.0