Sanitize whitespaces in python invocation

Avoid shell entirely on *nixes
pull/245/head
Charles Milette 2025-06-29 22:34:19 -04:00 zatwierdzone przez GitHub
rodzic abf2e4fc9a
commit c244f0797b
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
1 zmienionych plików z 9 dodań i 6 usunięć

Wyświetl plik

@ -122,13 +122,16 @@ module.exports = {
return; // Skip rest
}
const getOdmOptions = (pythonExe, done) => {
const getOdmOptions = (pythonExe, useShell, done) => {
// Launch
const env = utils.clone(process.env);
env.ODM_OPTIONS_TMP_FILE = utils.tmpPath(".json");
env.ODM_PATH = config.odm_path;
let childProcess = spawn(pythonExe, [path.join(__dirname, "..", "helpers", "odmOptionsToJson.py"),
"--project-path", config.odm_path, "bogusname"], { env, stdio: 'inherit', shell: true });
const helper = path.join(__dirname, "..", "helpers", "odmOptionsToJson.py");
const helperSanitized = useShell ? `"${helper}"` : helper;
const odmSanitized = useShell ? `"${config.odm_path}"` : config.odm_path;
let childProcess = spawn(pythonExe, [helperSanitized,
"--project-path", odmSanitized, "bogusname"], { env, stdio: 'inherit', shell: useShell });
// Cleanup on done
let handleResult = (err, result) => {
@ -160,11 +163,11 @@ module.exports = {
}
if (os.platform() === "win32"){
getOdmOptions("helpers\\odm_python.bat", done);
getOdmOptions("helpers\\odm_python.bat", true, done);
}else{
// Try Python3 first
getOdmOptions("python3", (err, result) => {
if (err) getOdmOptions("python", done);
getOdmOptions("python3", false, (err, result) => {
if (err) getOdmOptions("python", false, done);
else done(null, result);
});
}