aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
diff options
context:
space:
mode:
Diffstat (limited to 'netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java')
-rw-r--r--netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
index 104bf09..b353a9d 100644
--- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
+++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
@@ -815,7 +815,9 @@ public class JNLPClassLoader extends URLClassLoader {
nativeDir = getNativeDir();
File outFile = new File(nativeDir, name);
-
+ if (!outFile.isFile()) {
+ FileUtils.createRestrictedFile(outFile, true);
+ }
CacheUtil.streamCopy(jarFile.getInputStream(e),
new FileOutputStream(outFile));
@@ -837,12 +839,18 @@ public class JNLPClassLoader extends URLClassLoader {
+ File.separator + "netx-native-"
+ (new Random().nextInt() & 0xFFFF));
- if (!nativeDir.mkdirs())
+ File parent = nativeDir.getParentFile();
+ if (!parent.isDirectory() && !parent.mkdirs()) {
return null;
- else {
+ }
+
+ try {
+ FileUtils.createRestrictedDirectory(nativeDir);
// add this new native directory to the search path
addNativeDirectory(nativeDir);
return nativeDir;
+ } catch (IOException e) {
+ return null;
}
}