Index: java/io/PrintStream.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/io/PrintStream.java,v retrieving revision 1.25 diff -u -r1.25 PrintStream.java --- java/io/PrintStream.java 2 Jul 2005 20:32:38 -0000 1.25 +++ java/io/PrintStream.java 12 Jan 2006 20:19:18 -0000 @@ -1,5 +1,6 @@ /* PrintStream.java -- OutputStream for printing output - Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +39,8 @@ package java.io; +import gnu.classpath.SystemProperties; + /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 * "The Java Language Specification", ISBN 0-201-63451-1 * Status: Believed complete and correct to 1.3 @@ -64,7 +67,7 @@ // Line separator string. private static final char[] line_separator - = System.getProperty("line.separator").toCharArray(); + = SystemProperties.getProperty("line.separator").toCharArray(); /** * Encoding name @@ -112,7 +115,7 @@ super (out); try { - this.encoding = System.getProperty("file.encoding"); + this.encoding = SystemProperties.getProperty("file.encoding"); } catch (SecurityException e){ this.encoding = "ISO8859_1"; } catch (IllegalArgumentException e){ Index: java/security/Security.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/security/Security.java,v retrieving revision 1.39 diff -u -r1.39 Security.java --- java/security/Security.java 3 Jan 2006 10:06:11 -0000 1.39 +++ java/security/Security.java 13 Jan 2006 06:52:05 -0000 @@ -1,5 +1,6 @@ /* Security.java --- Java base security class implementation - Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +42,7 @@ import gnu.classpath.SystemProperties; import gnu.classpath.Configuration; +import gnu.classpath.VMStackWalker; import java.io.IOException; import java.io.InputStream; @@ -391,8 +393,11 @@ */ public static String getProperty(String key) { + // XXX To prevent infinite recursion when the SecurityManager calls us, + // don't do a security check if the caller is trusted (by virtue of having + // been loaded by the bootstrap class loader). SecurityManager sm = System.getSecurityManager(); - if (sm != null) + if (sm != null && VMStackWalker.getCallingClassLoader() != null) sm.checkSecurityAccess("getProperty." + key); return secprops.getProperty(key);