From ff2aa0c994619ba8891e7bc071f4374abca04a00 Mon Sep 17 00:00:00 2001 From: anupamme Date: Thu, 17 Sep 2026 13:22:23 +0000 Subject: [PATCH] fix: V-001 security vulnerability Automated security fix generated by OrbisAI Security --- helpers/odmOptionsToJson.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/helpers/odmOptionsToJson.py b/helpers/odmOptionsToJson.py index be66f0f9..503c71de 100644 --- a/helpers/odmOptionsToJson.py +++ b/helpers/odmOptionsToJson.py @@ -34,17 +34,24 @@ def load_source(module_name, filename): dest_file = os.environ.get("ODM_OPTIONS_TMP_FILE") -sys.path.append(sys.argv[2]) +if len(sys.argv) <= 2 or not sys.argv[2]: + sys.exit("Missing or invalid project path argument") + +project_path = os.path.realpath(sys.argv[2]) +if not os.path.isdir(project_path): + sys.exit("Project path does not exist or is not a directory: %s" % project_path) + +sys.path.append(project_path) try: - load_source('opendm', sys.argv[2] + '/opendm/__init__.py') + load_source('opendm', os.path.join(project_path, 'opendm', '__init__.py')) except: pass try: - load_source('context', sys.argv[2] + '/opendm/context.py') + load_source('context', os.path.join(project_path, 'opendm', 'context.py')) except: pass -odm = load_source('config', sys.argv[2] + '/opendm/config.py') +odm = load_source('config', os.path.join(project_path, 'opendm', 'config.py')) options = {} class ArgumentParserStub(argparse.ArgumentParser):