mirror of
https://github.com/balena-io/etcher.git
synced 2025-07-23 19:26:33 +00:00
Check that argument is an url or a regular file before opening
Changelog-entry: Check that argument is an url or a regular file before opening Change-type: patch
This commit is contained in:
parent
b1376dfa73
commit
52bdd02a4b
@ -17,6 +17,7 @@
|
||||
import { delay } from 'bluebird';
|
||||
import * as electron from 'electron';
|
||||
import { autoUpdater } from 'electron-updater';
|
||||
import { promises as fs } from 'fs';
|
||||
import { platform } from 'os';
|
||||
import * as _ from 'lodash';
|
||||
import * as path from 'path';
|
||||
@ -57,7 +58,17 @@ async function checkForUpdates(interval: number) {
|
||||
}
|
||||
}
|
||||
|
||||
function getCommandLineURL(argv: string[]): string | undefined {
|
||||
async function isFile(filePath: string): Promise<boolean> {
|
||||
try {
|
||||
const stat = await fs.stat(filePath);
|
||||
return stat.isFile();
|
||||
} catch {
|
||||
// noop
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
async function getCommandLineURL(argv: string[]): Promise<string | undefined> {
|
||||
argv = argv.slice(electron.app.isPackaged ? 1 : 2);
|
||||
if (argv.length) {
|
||||
const value = argv[argv.length - 1];
|
||||
@ -69,6 +80,14 @@ function getCommandLineURL(argv: string[]): string | undefined {
|
||||
if (platform() === 'darwin' && value.startsWith('-psn_')) {
|
||||
return;
|
||||
}
|
||||
if (
|
||||
!value.startsWith('http://') &&
|
||||
!value.startsWith('https://') &&
|
||||
!value.startsWith(scheme) &&
|
||||
!(await isFile(value))
|
||||
) {
|
||||
return;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
@ -204,9 +223,9 @@ async function main(): Promise<void> {
|
||||
window.restore();
|
||||
}
|
||||
window.focus();
|
||||
await selectImageURL(getCommandLineURL(argv));
|
||||
await selectImageURL(await getCommandLineURL(argv));
|
||||
});
|
||||
await selectImageURL(getCommandLineURL(process.argv));
|
||||
await selectImageURL(await getCommandLineURL(process.argv));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user