diff options
author | Omair Majid <[email protected]> | 2010-11-24 15:47:50 -0500 |
---|---|---|
committer | Omair Majid <[email protected]> | 2010-11-24 15:47:50 -0500 |
commit | 96560e4426643be5805fe106764da8f3d1f09613 (patch) | |
tree | b391c5912ef4254af4977c3a45eead7c0b376b4c /netx/net/sourceforge/jnlp/services/SingleInstanceLock.java | |
parent | 8a4ac3f07e3a60a8cf34fbe12b1b05219e865bf0 (diff) |
create files with reduced permissions when possible
2010-11-24 Omair Majid <[email protected]>
* netx/net/sourceforge/jnlp/util/FileUtils.java
(createRestrictedDirectory): New method. Creates a directory with reduced
permissions.
(createRestrictedFile(File,boolean)): New method. Creates a file with reduced
permissions.
(createRestrictedFile(File,boolean,boolean): New method. Creates a file or
a directory with reduced permissions.
* netx/net/sourceforge/jnlp/Launcher.java
(markNetxRunning): Do not grant unnecessary file permissions.
* netx/net/sourceforge/jnlp/runtime/Boot.java: Remove umask from
help message.
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
(activateNative): Create file with proper permissions.
(getNativeDir): Create directory with proper permissions.
* netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java
(initializeStreams): Create files with proper permissions.
* netx/net/sourceforge/jnlp/security/CertWarningPane.java
(CheckBoxListener.actionPerformed): Likewise.
* netx/net/sourceforge/jnlp/security/KeyStores.java
(createKeyStoreFromFile): Likewise.
* netx/net/sourceforge/jnlp/security/viewer/CertificatePane.java
(ImportButtonListener.actionPerformed): Likewise.
(RemoveButtonListener.actionPerformed): Likewise.
* netx/net/sourceforge/jnlp/services/SingleInstanceLock.java
(createWithPort): Likewise.
(getLockFile): Likewise.
* netx/net/sourceforge/jnlp/services/XExtendedService.java
(openFile): Likewise.
* netx/net/sourceforge/jnlp/services/XPersistenceService.java
(create): Likewise.
* netx/net/sourceforge/jnlp/util/XDesktopEntry.java
(installDesktopLauncher): Likewise.
* netx/net/sourceforge/jnlp/resources/Messages.properties: Add
CantCreateFile, RCantCreateDir and RCantRename. Remove BNoBase and
BOUmask.
Diffstat (limited to 'netx/net/sourceforge/jnlp/services/SingleInstanceLock.java')
-rw-r--r-- | netx/net/sourceforge/jnlp/services/SingleInstanceLock.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/netx/net/sourceforge/jnlp/services/SingleInstanceLock.java b/netx/net/sourceforge/jnlp/services/SingleInstanceLock.java index 3e6b3d6..d9430a3 100644 --- a/netx/net/sourceforge/jnlp/services/SingleInstanceLock.java +++ b/netx/net/sourceforge/jnlp/services/SingleInstanceLock.java @@ -67,6 +67,7 @@ class SingleInstanceLock { */ public void createWithPort(int localPort) throws IOException { + FileUtils.createRestrictedFile(lockFile, true); BufferedWriter lockFileWriter = new BufferedWriter(new FileWriter(lockFile, false)); lockFileWriter.write(String.valueOf(localPort)); lockFileWriter.newLine(); @@ -132,9 +133,17 @@ class SingleInstanceLock { File baseDir = new File(JNLPRuntime.getConfiguration() .getProperty(DeploymentConfiguration.KEY_USER_LOCKS_DIR)); - if (!baseDir.isDirectory() && !baseDir.mkdirs()) { - throw new RuntimeException(R("RNoLockDir", baseDir)); + if (!baseDir.isDirectory()) { + if (!baseDir.getParentFile().isDirectory() && !baseDir.getParentFile().mkdirs()) { + throw new RuntimeException(R("RNoLockDir", baseDir)); + } + try { + FileUtils.createRestrictedDirectory(baseDir); + } catch (IOException e) { + throw new RuntimeException(R("RNoLockDir", baseDir)); + } } + String lockFileName = getLockFileName(); File applicationLockFile = new File(baseDir, lockFileName); return applicationLockFile; |