mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8227587: Add internal privileged System.loadLibrary
Reviewed-by: rriggs, mchung, chegar
This commit is contained in:
parent
ec7f1c13d9
commit
78a1c8ea0a
26 changed files with 97 additions and 218 deletions
|
@ -2274,6 +2274,11 @@ public final class System {
|
|||
public void setCause(Throwable t, Throwable cause) {
|
||||
t.setCause(cause);
|
||||
}
|
||||
|
||||
public void loadLibrary(Class<?> caller, String library) {
|
||||
assert library.indexOf(java.io.File.separatorChar) < 0;
|
||||
ClassLoader.loadLibrary(caller, library, false);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,13 +67,7 @@ abstract class AbstractPlainDatagramSocketImpl extends DatagramSocketImpl
|
|||
* Load net library into runtime.
|
||||
*/
|
||||
static {
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction<>() {
|
||||
public Void run() {
|
||||
System.loadLibrary("net");
|
||||
return null;
|
||||
}
|
||||
});
|
||||
jdk.internal.loader.BootLoader.loadLibrary("net");
|
||||
}
|
||||
|
||||
private static volatile boolean checkedReusePort;
|
||||
|
|
|
@ -94,13 +94,7 @@ abstract class AbstractPlainSocketImpl extends SocketImpl implements PlatformSoc
|
|||
* Load net library into runtime.
|
||||
*/
|
||||
static {
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction<>() {
|
||||
public Void run() {
|
||||
System.loadLibrary("net");
|
||||
return null;
|
||||
}
|
||||
});
|
||||
jdk.internal.loader.BootLoader.loadLibrary("net");
|
||||
}
|
||||
|
||||
private static volatile boolean checkedReusePort;
|
||||
|
|
|
@ -46,13 +46,7 @@ class DatagramPacket {
|
|||
* Perform class initialization
|
||||
*/
|
||||
static {
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction<>() {
|
||||
public Void run() {
|
||||
System.loadLibrary("net");
|
||||
return null;
|
||||
}
|
||||
});
|
||||
jdk.internal.loader.BootLoader.loadLibrary("net");
|
||||
init();
|
||||
}
|
||||
|
||||
|
|
|
@ -317,13 +317,7 @@ class InetAddress implements java.io.Serializable {
|
|||
} else {
|
||||
preferIPv6Address = PREFER_IPV4_VALUE;
|
||||
}
|
||||
AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction<>() {
|
||||
public Void run() {
|
||||
System.loadLibrary("net");
|
||||
return null;
|
||||
}
|
||||
});
|
||||
jdk.internal.loader.BootLoader.loadLibrary("net");
|
||||
SharedSecrets.setJavaNetInetAddressAccess(
|
||||
new JavaNetInetAddressAccess() {
|
||||
public String getOriginalHostName(InetAddress ia) {
|
||||
|
|
|
@ -28,7 +28,6 @@ package java.net;
|
|||
import java.util.Arrays;
|
||||
import java.util.Enumeration;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.security.AccessController;
|
||||
import java.util.Spliterator;
|
||||
import java.util.Spliterators;
|
||||
import java.util.stream.Stream;
|
||||
|
@ -57,13 +56,7 @@ public final class NetworkInterface {
|
|||
private static final int defaultIndex; /* index of defaultInterface */
|
||||
|
||||
static {
|
||||
AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction<>() {
|
||||
public Void run() {
|
||||
System.loadLibrary("net");
|
||||
return null;
|
||||
}
|
||||
});
|
||||
jdk.internal.loader.BootLoader.loadLibrary("net");
|
||||
|
||||
init();
|
||||
defaultInterface = DefaultInterface.getDefault();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -27,8 +27,6 @@ package java.util.zip;
|
|||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.file.attribute.FileTime;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.time.DateTimeException;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
|
@ -278,13 +276,7 @@ class ZipUtils {
|
|||
* Loads zip native library, if not already laoded
|
||||
*/
|
||||
static void loadLibrary() {
|
||||
SecurityManager sm = System.getSecurityManager();
|
||||
if (sm == null) {
|
||||
System.loadLibrary("zip");
|
||||
} else {
|
||||
PrivilegedAction<Void> pa = () -> { System.loadLibrary("zip"); return null; };
|
||||
AccessController.doPrivileged(pa);
|
||||
}
|
||||
jdk.internal.loader.BootLoader.loadLibrary("zip");
|
||||
}
|
||||
|
||||
private static final Unsafe unsafe = Unsafe.getUnsafe();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue