view patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch @ 2901:a08f636892a8

Split 6657673-jaxp-backport-factoryfinder patch into two. 2013-04-22 Elliott Baron <ebaron@redhat.com> * Makefile.am: (ICEDTEA_PATCHES): Removed one patch, split it into two. * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: Removed. Split into patches below. * patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch: First part of removed patch. * patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch: Second part of removed patch.
author Elliott Baron <ebaron@redhat.com>
date Mon, 22 Apr 2013 17:13:26 -0400
parents
children
line wrap: on
line source

diff -ur openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java
--- openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java	2013-04-22 12:42:32.138748378 -0400
+++ openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java	2013-04-22 12:41:36.033419998 -0400
@@ -44,7 +44,7 @@
  * @author Santiago.PericasGeertsen@sun.com
  */
 class FactoryFinder {
-    
+    private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xerces.internal";
     /**
      * Internal debug flag.
      */
@@ -140,6 +140,14 @@
     static Object newInstance(String className, ClassLoader cl, boolean doFallback)
         throws ConfigurationError
     {
+        // make sure we have access to restricted packages
+        if (System.getSecurityManager() != null) {
+            if (className != null && className.startsWith(DEFAULT_PACKAGE)) {
+                cl = null;
+                useBSClsLoader = true;
+            }
+        }
+
         try {
             Class providerClass = getProviderClass(className, cl, doFallback);                        
             Object instance = providerClass.newInstance();
Only in openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/parsers: FactoryFinder.java.orig
diff -ur openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java
--- openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java	2013-04-22 12:42:32.230748906 -0400
+++ openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java	2013-04-22 12:41:41.268451218 -0400
@@ -44,6 +44,7 @@
  * @author Santiago.PericasGeertsen@sun.com
  */
 class FactoryFinder {
+    private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xalan.internal.";
     
     /**
      * Internal debug flag.
@@ -140,6 +141,14 @@
     static Object newInstance(String className, ClassLoader cl, boolean doFallback)
         throws ConfigurationError
     {
+        // make sure we have access to restricted packages
+        if (System.getSecurityManager() != null) {
+            if (className != null && className.startsWith(DEFAULT_PACKAGE)) {
+                cl = null;
+                useBSClsLoader = true;
+            }
+        }
+
         try {
             Class providerClass = getProviderClass(className, cl, doFallback);                        
             Object instance = providerClass.newInstance();