< prev index next >

src/java.base/share/classes/java/lang/System.java

Print this page
rev 55657 : 8227587: Add internal privileged System.loadLibrary
Reviewed-by: rriggs

*** 2272,2279 **** --- 2272,2303 ---- } public void setCause(Throwable t, Throwable cause) { t.setCause(cause); } + + public void loadLibrary(Class<?> klass, String library) { + assert library.indexOf(java.io.File.separatorChar) < 0 && classStackWalker().getCallerClass() == klass; + if (System.getSecurityManager() == null) { + ClassLoader.loadLibrary(klass, library, false); + } else { + AccessController.doPrivileged( + new java.security.PrivilegedAction<>() { + public Void run() { + ClassLoader.loadLibrary(klass, library, false); + return null; + } + }); + } + } + + private StackWalker classStackWalker() { + return AccessController.doPrivileged( + new java.security.PrivilegedAction<StackWalker>() { + public StackWalker run() { + return StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE); + } + }); + } }); } }
< prev index next >