diff mbox series

oe: pass gcc and tmux commands as lists

Message ID 20260619092631.1982181-1-anders.heimer@est.tech
State New
Headers show
Series oe: pass gcc and tmux commands as lists | expand

Commit Message

Anders Heimer June 19, 2026, 9:26 a.m. UTC
Avoid shell=True in subprocess calls.

Handle OSError if gcc cannot be started.

Signed-off-by: Anders Heimer <anders.heimer@est.tech>
---
 meta/lib/oe/terminal.py | 4 ++--
 meta/lib/oe/utils.py    | 6 ++++--
 2 files changed, 6 insertions(+), 4 deletions(-)
diff mbox series

Patch

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: