Permission Analysis Report
Analysis of: org.eclipse.osgi
Detail
Class: org.eclipse.osgi.framework.internal.core.FrameworkSecurityManager (Application)
DoPrivileged location: Line# 24 void <init>( )
Permission: java.lang.RuntimePermission "createSecurityManager"
Primordial/void java.lang.SecurityManager.SecurityManager( )
CODE
Tainted variable reference trace:
Permission Requirements:
- permission java.lang.RuntimePermission "createSecurityManager";
Conclusion:
DoPrivileged location: Line# 100 void internalCheckPermission( java.security.Permission, java.lang.Object )
Permission: java.lang.RuntimePermission "getClassLoader"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "*", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "*:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "-1", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "-1:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "-2", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "-2147483648", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "-2147483648:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "-2:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "-3", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "-3:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "-9223372036854775808", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "-9223372036854775808:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission ".", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission ".:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "0", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "0:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "1", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "1.3", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "1.3:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "10", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "10:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "13", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "13:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "1:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "2", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "23", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "23:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "2:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "3", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "3.0.0", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "3.0.0:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "3:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "4", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "4:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "5", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "5:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "6", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "6:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "7", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "7:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "8", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "8:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "9", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "9:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission ":???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "???host???", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "???host???:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "Eclipse", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "Eclipse:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "META-INF/MANIFEST.MF", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "META-INF/MANIFEST.MF:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "No message available.", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "No message available.:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "aix", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "aix:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "bin", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "bin:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "bundles", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "bundles:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "carbon", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "carbon:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "false", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "false:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "fragment.xml", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "fragment.xml:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "hpux", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "hpux:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "linux", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "linux:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "localhost", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "localhost:1024-", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "localhost:1024-:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "localhost:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "macosx", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "macosx:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "manifests", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "manifests:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "motif", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "motif:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "org.eclipse.osgi", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "org.eclipse.osgi:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "photon", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "photon:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "plugin.xml", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "plugin.xml:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "qnx", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "qnx:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "solaris", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "solaris:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "true", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "true:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "unknown", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "unknown:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "win32", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "win32:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "x86", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "x86:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "x86_64", "resolve"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
Permission: java.net.SocketPermission "x86_64:???port???", "connect"
Primordial/void java.security.AccessControlContext.checkPermission( java.security.Permission )
CODE
public void internalCheckPermission(Permission perm, Object context) {
AccessControlContext acc = (AccessControlContext) context;
CheckContext cc = (CheckContext) localCheckContext.get();
if (cc == null) {
cc = new CheckContext();
localCheckContext.set(cc);
}
cc.depthCondSets.add(null); // initialize postponed condition set to null
try {
acc.checkPermission(perm);
// We want to pop the first set of postponed conditions and process them
Vector remainingSets = (Vector) cc.depthCondSets.get(cc.getDepth());
if (remainingSets != null) {
/*
* In this bit of code we have to try every possible combination
* of conditional permissions that still need to be evaluated. We
* do this using recursion to keep track of the different
* combinations we have tried. The top call will setup the different
* combinations for the first protection domain with unevaluated
* conditions. The final call will actually evaluate the condition.
* If a good combination is found, it will immediately bubble
* up.
*/
Hashtable condContextDict = new Hashtable(2);
// The remainder we will process recursively.
Condition conds[][] = (Condition[][]) remainingSets.remove(0);
for (int i = 0; i < conds.length; i++)
if (recursiveCheck(remainingSets, conds[i], null, condContextDict, cc))
return; // found a pass return without SecurityException
throw new SecurityException("Conditions not satisfied"); //$NON-NLS-1$
}
} finally {
cc.depthCondSets.remove(cc.getDepth());
}
}
Tainted variable reference trace:
Permission Requirements:
- permission java.lang.RuntimePermission "getClassLoader";
- permission java.net.SocketPermission "", "resolve";
- permission java.net.SocketPermission "*", "resolve";
- permission java.net.SocketPermission "*:???port???", "connect";
- permission java.net.SocketPermission "-1", "resolve";
- permission java.net.SocketPermission "-1:???port???", "connect";
- permission java.net.SocketPermission "-2", "resolve";
- permission java.net.SocketPermission "-2147483648", "resolve";
- permission java.net.SocketPermission "-2147483648:???port???", "connect";
- permission java.net.SocketPermission "-2:???port???", "connect";
- permission java.net.SocketPermission "-3", "resolve";
- permission java.net.SocketPermission "-3:???port???", "connect";
- permission java.net.SocketPermission "-9223372036854775808", "resolve";
- permission java.net.SocketPermission "-9223372036854775808:???port???", "connect";
- permission java.net.SocketPermission ".", "resolve";
- permission java.net.SocketPermission ".:???port???", "connect";
- permission java.net.SocketPermission "0", "resolve";
- permission java.net.SocketPermission "0:???port???", "connect";
- permission java.net.SocketPermission "1", "resolve";
- permission java.net.SocketPermission "1.3", "resolve";
- permission java.net.SocketPermission "1.3:???port???", "connect";
- permission java.net.SocketPermission "10", "resolve";
- permission java.net.SocketPermission "10:???port???", "connect";
- permission java.net.SocketPermission "13", "resolve";
- permission java.net.SocketPermission "13:???port???", "connect";
- permission java.net.SocketPermission "1:???port???", "connect";
- permission java.net.SocketPermission "2", "resolve";
- permission java.net.SocketPermission "23", "resolve";
- permission java.net.SocketPermission "23:???port???", "connect";
- permission java.net.SocketPermission "2:???port???", "connect";
- permission java.net.SocketPermission "3", "resolve";
- permission java.net.SocketPermission "3.0.0", "resolve";
- permission java.net.SocketPermission "3.0.0:???port???", "connect";
- permission java.net.SocketPermission "3:???port???", "connect";
- permission java.net.SocketPermission "4", "resolve";
- permission java.net.SocketPermission "4:???port???", "connect";
- permission java.net.SocketPermission "5", "resolve";
- permission java.net.SocketPermission "5:???port???", "connect";
- permission java.net.SocketPermission "6", "resolve";
- permission java.net.SocketPermission "6:???port???", "connect";
- permission java.net.SocketPermission "7", "resolve";
- permission java.net.SocketPermission "7:???port???", "connect";
- permission java.net.SocketPermission "8", "resolve";
- permission java.net.SocketPermission "8:???port???", "connect";
- permission java.net.SocketPermission "9", "resolve";
- permission java.net.SocketPermission "9:???port???", "connect";
- permission java.net.SocketPermission ":???port???", "connect";
- permission java.net.SocketPermission "???host???", "resolve";
- permission java.net.SocketPermission "???host???:???port???", "connect";
- permission java.net.SocketPermission "Eclipse", "resolve";
- permission java.net.SocketPermission "Eclipse:???port???", "connect";
- permission java.net.SocketPermission "META-INF/MANIFEST.MF", "resolve";
- permission java.net.SocketPermission "META-INF/MANIFEST.MF:???port???", "connect";
- permission java.net.SocketPermission "No message available.", "resolve";
- permission java.net.SocketPermission "No message available.:???port???", "connect";
- permission java.net.SocketPermission "aix", "resolve";
- permission java.net.SocketPermission "aix:???port???", "connect";
- permission java.net.SocketPermission "bin", "resolve";
- permission java.net.SocketPermission "bin:???port???", "connect";
- permission java.net.SocketPermission "bundles", "resolve";
- permission java.net.SocketPermission "bundles:???port???", "connect";
- permission java.net.SocketPermission "carbon", "resolve";
- permission java.net.SocketPermission "carbon:???port???", "connect";
- permission java.net.SocketPermission "false", "resolve";
- permission java.net.SocketPermission "false:???port???", "connect";
- permission java.net.SocketPermission "fragment.xml", "resolve";
- permission java.net.SocketPermission "fragment.xml:???port???", "connect";
- permission java.net.SocketPermission "hpux", "resolve";
- permission java.net.SocketPermission "hpux:???port???", "connect";
- permission java.net.SocketPermission "linux", "resolve";
- permission java.net.SocketPermission "linux:???port???", "connect";
- permission java.net.SocketPermission "localhost", "resolve";
- permission java.net.SocketPermission "localhost:1024-", "resolve";
- permission java.net.SocketPermission "localhost:1024-:???port???", "connect";
- permission java.net.SocketPermission "localhost:???port???", "connect";
- permission java.net.SocketPermission "macosx", "resolve";
- permission java.net.SocketPermission "macosx:???port???", "connect";
- permission java.net.SocketPermission "manifests", "resolve";
- permission java.net.SocketPermission "manifests:???port???", "connect";
- permission java.net.SocketPermission "motif", "resolve";
- permission java.net.SocketPermission "motif:???port???", "connect";
- permission java.net.SocketPermission "org.eclipse.osgi", "resolve";
- permission java.net.SocketPermission "org.eclipse.osgi:???port???", "connect";
- permission java.net.SocketPermission "photon", "resolve";
- permission java.net.SocketPermission "photon:???port???", "connect";
- permission java.net.SocketPermission "plugin.xml", "resolve";
- permission java.net.SocketPermission "plugin.xml:???port???", "connect";
- permission java.net.SocketPermission "qnx", "resolve";
- permission java.net.SocketPermission "qnx:???port???", "connect";
- permission java.net.SocketPermission "solaris", "resolve";
- permission java.net.SocketPermission "solaris:???port???", "connect";
- permission java.net.SocketPermission "true", "resolve";
- permission java.net.SocketPermission "true:???port???", "connect";
- permission java.net.SocketPermission "unknown", "resolve";
- permission java.net.SocketPermission "unknown:???port???", "connect";
- permission java.net.SocketPermission "win32", "resolve";
- permission java.net.SocketPermission "win32:???port???", "connect";
- permission java.net.SocketPermission "x86", "resolve";
- permission java.net.SocketPermission "x86:???port???", "connect";
- permission java.net.SocketPermission "x86_64", "resolve";
- permission java.net.SocketPermission "x86_64:???port???", "connect";
Conclusion: