From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- libjava/classpath/java/lang/RuntimePermission.java | 209 +++++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 libjava/classpath/java/lang/RuntimePermission.java (limited to 'libjava/classpath/java/lang/RuntimePermission.java') diff --git a/libjava/classpath/java/lang/RuntimePermission.java b/libjava/classpath/java/lang/RuntimePermission.java new file mode 100644 index 000000000..2f80b9107 --- /dev/null +++ b/libjava/classpath/java/lang/RuntimePermission.java @@ -0,0 +1,209 @@ +/* RuntimePermission.java -- permission for a secure runtime action + Copyright (C) 1998, 2000, 2002, 2005 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package java.lang; + +import java.security.BasicPermission; +import java.security.Permission; + +/** + * A RuntimePermission contains a permission name, but no + * actions list. This means you either have the permission or you don't. + * + * Permission names have the follow the hierarchial property naming + * convention. In addition, an asterisk may appear at the end of a + * name if following a period or by itself. + * + * + * + * + * + *
Valid namesInvalid names
"accessClassInPackage.*","*""**", "*x", "*.a"
+ *
+ * + * The following table provides a list of all the possible RuntimePermission + * permission names with a description of what that permission allows.
+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Permission NamePermission AllowsRisks + *
createClassLoadercreation of a class loadera class loader can load rogue classes which bypass all security + * permissions
getClassLoaderretrieval of the class loader for the calling classrogue code could load classes not otherwise available
setContextClassLoaderallows the setting of the context class loader used by a threadrogue code could change the context class loader needed by system + * threads
setSecurityManagerallows the application to replace the security managerthe new manager may be less restrictive, so that rogue code can + * bypass existing security checks
createSecurityManagerallows the application to create a new security managerrogue code can use the new security manager to discover information + * about the execution stack
exitVMallows the application to halt the virtual machinerogue code can mount a denial-of-service attack by killing the + * virtual machine
shutdownHooksallows registration and modification of shutdown hooksrogue code can add a hook that interferes with clean + * virtual machine shutdown
setFactoryallows the application to set the socket factory for socket, + * server socket, stream handler, or RMI socket factory.rogue code can create a rogue network object which mangles or + * intercepts data
setIOallows the application to set System.out, System.in, and + * System.errrogue code could sniff user input and intercept or mangle + * output
modifyThreadallows the application to modify any thread in the virtual machine + * using any of the methods stop, resume, + * suspend, setPriority, and + * setName of classs Threadrogue code could adversely modify system or user threads
stopThreadallows the application to stop any thread it has + * access to in the systemrogue code can stop arbitrary threads
modifyThreadGroupallows the application to modify thread groups using any of the + * methods destroy, resume, + * setDaemon, setMaxPriority, + * stop, and suspend of the class + * ThreadGrouprogue code can mount a denial-of-service attack by changing run + * priorities
getProtectionDomainretrieve a class's ProtectionDomainrogue code can gain information about the security policy, to + * prepare a better attack
readFileDescriptorread a file descriptorrogue code can read sensitive information
writeFileDescriptorwrite a file descriptorrogue code can write files, including viruses, and can modify the + * virtual machine binary; if not just fill up the disk
loadLibrary.library namedynamic linking of the named librarynative code can bypass many security checks of pure Java
accessClassInPackage.package nameaccess to a package via a ClassLoaderrogue code can access classes not normally available
defineClassInPackage.package namedefine a class inside a given packagerogue code can install rogue classes, including in trusted packages + * like java.security or java.lang
accessDeclaredMembersaccess declared class members via reflectionrogue code can discover information, invoke methods, or modify fields + * that are not otherwise available
queuePrintJobinitiate a print jobrogue code could make a hard copy of sensitive information, or + * simply waste paper
+ * + * @author Brian Jones + * @author Eric Blake (ebb9@email.byu.edu) + * @see BasicPermission + * @see Permission + * @see SecurityManager + * @since 1.2 + * @status updated to 1.4 + */ +public final class RuntimePermission extends BasicPermission +{ + /** + * Compatible with JDK 1.2+. + */ + private static final long serialVersionUID = 7399184964622342223L; + + /** + * Create a new permission with the specified name. + * + * @param permissionName the name of the granted permission + * @throws NullPointerException if name is null + * @throws IllegalArgumentException thrown if name is empty or invalid + */ + public RuntimePermission(String permissionName) + { + super(permissionName); + } + + /** + * Create a new permission with the specified name. The actions argument + * is ignored, as runtime permissions have no actions. + * + * @param permissionName the name of the granted permission + * @param actions ignored + * @throws NullPointerException if name is null + * @throws IllegalArgumentException thrown if name is empty or invalid + */ + public RuntimePermission(String permissionName, String actions) + { + super(permissionName); + } +} -- cgit v1.2.3