From bf1a487b73da46723d95f7ad112998dbd5b09f33 Mon Sep 17 00:00:00 2001 From: Frantisek Hrbata Date: Mon, 24 Jul 2023 16:19:30 +0200 Subject: [PATCH] fix(idf_tools): execution of empty command in get_version() The ticket below reports some very strange behaviour, where even a simple command like the following python3 -c "import subprocess; subprocess.run([''])" actually spawns some process and pass instead of raising PermissionError. Even though the problem is most probably somewhere else, not in idf_tools, we may just return early if there is no command available for get_version(). Closes https://github.com/espressif/esp-idf/issues/11880 Signed-off-by: Frantisek Hrbata --- tools/idf_tools.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/idf_tools.py b/tools/idf_tools.py index 8865348f6f..008730279d 100755 --- a/tools/idf_tools.py +++ b/tools/idf_tools.py @@ -689,6 +689,13 @@ class IDFTool(object): cmd = self._current_options.version_cmd # type: ignore if executable_path: cmd[0] = executable_path + + if not cmd[0]: + # There is no command available, so return early. It seems that + # within some very strange context empty [''] may actually execute + # something https://github.com/espressif/esp-idf/issues/11880 + raise ToolNotFound('Tool {} not found'.format(self.name)) + try: version_cmd_result = run_cmd_check_output(cmd, None, extra_paths) except OSError: