Hi all,

This fix loads java.security.Security before setting a security
manager, ensuring that various classes and policy files are loaded
before any restrictions on such things come into play.

Cheers,
Gary
Index: ChangeLog
===================================================================
RCS file: /cvsroot/classpath/classpath/ChangeLog,v
retrieving revision 1.6069
diff -u -r1.6069 ChangeLog
--- ChangeLog   16 Jan 2006 09:24:19 -0000      1.6069
+++ ChangeLog   16 Jan 2006 09:53:13 -0000
@@ -1,3 +1,8 @@
+2006-01-16  Gary Benson  <[EMAIL PROTECTED]>
+
+       * java/lang/System.java (setSecurityManager): Ensure policy
+       files are loaded before a security manager is put in place.
+
 2006-01-16  David Gilbert  <[EMAIL PROTECTED]>
 
        * javax/swing/text/SimpleAttributeSet.java: Updated API docs all over.
Index: java/lang/System.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/lang/System.java,v
retrieving revision 1.53
diff -u -r1.53 System.java
--- java/lang/System.java       13 Sep 2005 22:19:15 -0000      1.53
+++ java/lang/System.java       16 Jan 2006 09:53:13 -0000
@@ -178,6 +178,23 @@
     if (SecurityManager.current != null)
       SecurityManager.current.checkPermission
         (new RuntimePermission("setSecurityManager"));
+
+    // java.security.Security's class initialiser loads and parses the
+    // policy files.  If it hasn't been run already it will be run
+    // during the first permission check.  That initialisation will
+    // fail if a very restrictive security manager is in force, so we
+    // preload it here.
+    if (SecurityManager.current == null)
+      {
+       try
+         {
+           Class.forName("java.security.Security");
+         }
+       catch (Throwable t)
+         {
+         }
+      }
+    
     SecurityManager.current = sm;
   }
 
_______________________________________________
Classpath-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to