< prev index next >
src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystemProvider.java
Print this page
@@ -37,10 +37,13 @@
import java.nio.file.DirectoryStream.Filter;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileAttribute;
import java.nio.file.attribute.FileAttributeView;
import java.nio.file.spi.FileSystemProvider;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.zip.ZipException;
@@ -315,11 +318,19 @@
}
//////////////////////////////////////////////////////////////
void removeFileSystem(Path zfpath, ZipFileSystem zfs) throws IOException {
synchronized (filesystems) {
- zfpath = zfpath.toRealPath();
+ Path tempPath = zfpath;
+ try {
+ zfpath = AccessController.doPrivileged(
+ (PrivilegedExceptionAction<Path>) () -> tempPath.toRealPath(),
+ null,
+ new java.util.PropertyPermission("user.dir", "read"));
+ } catch (PrivilegedActionException e) {
+ throw (IOException) e.getException();
+ }
if (filesystems.get(zfpath) == zfs)
filesystems.remove(zfpath);
}
}
}
< prev index next >