libbluray | branch: master | hpi1 <[email protected]> | Tue Mar 31 12:36:05 2015 +0300| [8ed41e3afcacd73289c64259d13af18c0086d501] | committer: hpi1
JSM: fix handling of relative parths > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=8ed41e3afcacd73289c64259d13af18c0086d501 --- src/libbluray/bdj/java/java/io/BDFileSystem.java | 2 +- .../bdj/java/org/videolan/BDJSecurityManager.java | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/libbluray/bdj/java/java/io/BDFileSystem.java b/src/libbluray/bdj/java/java/io/BDFileSystem.java index 276d38c..508014e 100644 --- a/src/libbluray/bdj/java/java/io/BDFileSystem.java +++ b/src/libbluray/bdj/java/java/io/BDFileSystem.java @@ -126,7 +126,7 @@ public abstract class BDFileSystem extends FileSystem { return fs.prefixLength(pathname); } - private boolean isAbsolutePath(String path) { + public static boolean isAbsolutePath(String path) { return path.startsWith("/") || path.indexOf(":\\") == 1 || path.startsWith("\\"); } diff --git a/src/libbluray/bdj/java/org/videolan/BDJSecurityManager.java b/src/libbluray/bdj/java/org/videolan/BDJSecurityManager.java index 9e60282..8a692d0 100644 --- a/src/libbluray/bdj/java/org/videolan/BDJSecurityManager.java +++ b/src/libbluray/bdj/java/org/videolan/BDJSecurityManager.java @@ -241,8 +241,18 @@ final class BDJSecurityManager extends SecurityManager { throw new SecurityException("write access denied"); } - private String getCanonPath(final String path) + private String getCanonPath(String origPath) { + if (!java.io.BDFileSystem.isAbsolutePath(origPath)) { + String home = BDJXletContext.getCurrentXletHome(); + if (home == null) { + logger.error("Relative path " + origPath + " outside Xlet context\n" + Logger.dumpStack()); + return origPath; + } + origPath = home + origPath; + } + + final String path = origPath; String cpath = (String)AccessController.doPrivileged(new PrivilegedAction() { public Object run() { try { _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
