summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2017-10-19 12:36:00 +0200
committerAndrej Mihajlov <and@mullvad.net>2017-10-19 14:19:04 +0200
commit5c9c856002f24dce160a1b4bc1329e920f682b06 (patch)
treea794f56d79a645ae639fd27afcb7961f454e98d7
parent934f9287c6639ca6ffa761d7322666c85cec07f7 (diff)
downloadmullvadvpn-5c9c856002f24dce160a1b4bc1329e920f682b06.tar.xz
mullvadvpn-5c9c856002f24dce160a1b4bc1329e920f682b06.zip
Escape paths passed to ElectronSudo.spawn
-rw-r--r--app/main.js13
-rw-r--r--package.json1
-rw-r--r--yarn.lock4
3 files changed, 12 insertions, 6 deletions
diff --git a/app/main.js b/app/main.js
index 22deb543cd..f39e5dc429 100644
--- a/app/main.js
+++ b/app/main.js
@@ -6,6 +6,7 @@ import log from 'electron-log';
import { app, BrowserWindow, ipcMain, Tray, Menu, nativeImage } from 'electron';
import TrayIconManager from './lib/tray-icon-manager';
import ElectronSudo from 'electron-sudo';
+import shellescape from 'shell-escape';
import { version } from '../package.json';
import { parseIpcCredentials } from './lib/backend';
@@ -120,7 +121,6 @@ const appDelegate = {
},
_startBackend: () => {
-
const backendIsRunning = appDelegate._rpcAddressFileExists();
if (backendIsRunning) {
log.info('Not starting the backend as it appears to already be running');
@@ -134,11 +134,12 @@ const appDelegate = {
name: 'Mullvad',
};
const sudo = new ElectronSudo(options);
- sudo.spawn( pathToBackend, [
- '-v' +
- ' --log "' + path.join(appDelegate._logFileLocation, 'backend.log"') +
- ' --tunnel-log "' + path.join(appDelegate._logFileLocation, 'openvpn.log"')
- ])
+ const backendCommand = shellescape([
+ pathToBackend, '-v',
+ '--log', path.join(appDelegate._logFileLocation, 'backend.log'),
+ '--tunnel-log', path.join(appDelegate._logFileLocation, 'openvpn.log')
+ ]);
+ sudo.spawn(backendCommand, [])
.then( p => {
appDelegate._setupBackendProcessListeners(p);
return p;
diff --git a/package.json b/package.json
index 2604d7e12c..627d074903 100644
--- a/package.json
+++ b/package.json
@@ -31,6 +31,7 @@
"react-transition-group": "^1.2.0",
"redux": "^3.0.0",
"redux-thunk": "^2.2.0",
+ "shell-escape": "^0.2.0",
"uuid": "^3.0.1",
"validated": "^1.1.0"
},
diff --git a/yarn.lock b/yarn.lock
index a01d22630a..7dfe1a281f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5116,6 +5116,10 @@ shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+shell-escape@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/shell-escape/-/shell-escape-0.2.0.tgz#68fd025eb0490b4f567a027f0bf22480b5f84133"
+
shell-quote@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"