From: Anders Heimer Date: Fri, 19 Jun 2026 09:26:31 +0000 (+0200) Subject: oe: pass gcc and tmux commands as lists X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cc3374ed9bdfa0d148cf85c59feacacffe15b401;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git oe: pass gcc and tmux commands as lists Avoid shell=True in subprocess calls. Handle OSError if gcc cannot be started. Signed-off-by: Anders Heimer Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oe/terminal.py b/meta/lib/oe/terminal.py index 013d77581d..ec65b616ab 100644 --- a/meta/lib/oe/terminal.py +++ b/meta/lib/oe/terminal.py @@ -283,8 +283,8 @@ def check_tmux_pane_size(tmux): if not check_tmux_version('1.9'): return False try: - p = sub.Popen('%s list-panes -F "#{?pane_active,#{pane_height},}"' % tmux, - shell=True,stdout=sub.PIPE,stderr=sub.PIPE) + p = sub.Popen([tmux, "list-panes", "-F", "#{?pane_active,#{pane_height},}"], + stdout=sub.PIPE, stderr=sub.PIPE) out, err = p.communicate() size = int(out.strip()) except OSError as exc: diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py index 18c48a145f..558073d3b1 100644 --- a/meta/lib/oe/utils.py +++ b/meta/lib/oe/utils.py @@ -433,10 +433,12 @@ def get_host_gcc_version(d, taskcontextonly=False): # datastore PATH does not contain session PATH as set by environment-setup-... # this breaks the install-buildtools use-case # env["PATH"] = d.getVar("PATH") - output = subprocess.check_output("gcc --version", \ - shell=True, env=env, stderr=subprocess.STDOUT).decode("utf-8") + output = subprocess.check_output(["gcc", "--version"], \ + env=env, stderr=subprocess.STDOUT).decode("utf-8") except subprocess.CalledProcessError as e: bb.fatal("Error running gcc --version: %s" % (e.output.decode("utf-8"))) + except OSError as e: + bb.fatal("Error running gcc --version: %s" % e) match = re.match(r".* (\d+\.\d+)\.\d+.*", output.split('\n')[0]) if not match: