From c31d49234f0c7a81b69d525e249b154e11c486a9 Mon Sep 17 00:00:00 2001 From: Michal Vasilek Date: Thu, 12 Aug 2021 15:57:01 +0200 Subject: [PATCH] utils: use internal which implementation * removes runtime dependency on which * fixes aa-unconfined when ss is installed outside {/usr,}/bin Signed-off-by: Michal Vasilek --- utils/aa-unconfined | 2 +- utils/apparmor/easyprof.py | 8 +++----- utils/apparmor/sandbox.py | 10 ++++------ 3 files changed, 8 insertions(+), 12 deletions(-) --- a/utils/aa-unconfined +++ b/utils/aa-unconfined @@ -116,7 +116,7 @@ def read_proc_current(filename): pids = set() if paranoid: pids = get_all_pids() -elif args.with_ss or (not args.with_netstat and (os.path.exists('/bin/ss') or os.path.exists('/usr/bin/ss'))): +elif args.with_ss or (not args.with_netstat and (aa.which("ss") is not None)): pids = get_pids_ss() else: pids = get_pids_netstat() --- a/utils/apparmor/easyprof.py +++ b/utils/apparmor/easyprof.py @@ -22,6 +22,8 @@ import subprocess import sys import tempfile +from apparmor.aa import which + # # TODO: move this out to the common library # @@ -294,13 +296,9 @@ class AppArmorEasyProfile: if os.path.isfile(self.conffile): self._get_defaults() - self.parser_path = '/sbin/apparmor_parser' + self.parser_path = which('apparmor_parser') if opt.parser_path: self.parser_path = opt.parser_path - elif not os.path.exists(self.parser_path): - rc, self.parser_path = cmd(['which', 'apparmor_parser']) - if rc != 0: - self.parser_path = None self.parser_base = "/etc/apparmor.d" if opt.parser_base: --- a/utils/apparmor/sandbox.py +++ b/utils/apparmor/sandbox.py @@ -9,6 +9,7 @@ # ------------------------------------------------------------------ from apparmor.common import AppArmorException, debug, error, msg, cmd +from apparmor.aa import which import apparmor.easyprof import optparse import os @@ -31,8 +32,7 @@ def check_requirements(binary): for e in exes: debug("Searching for '%s'" % e) - rc, report = cmd(['which', e]) - if rc != 0: + if which(e) is None: error("Could not find '%s'" % e, do_exit=False) return False @@ -306,8 +306,7 @@ class SandboxXephyr(SandboxXserver): def start(self): for e in ['Xephyr', 'matchbox-window-manager']: debug("Searching for '%s'" % e) - rc, report = cmd(['which', e]) - if rc != 0: + if which(e) is None: raise AppArmorException("Could not find '%s'" % e) '''Run any setup code''' @@ -567,8 +566,7 @@ EndSection def start(self): debug("Searching for '%s'" % 'xpra') - rc, report = cmd(['which', 'xpra']) - if rc != 0: + if which('xpra') is None: raise AppArmorException("Could not find '%s'" % 'xpra') if self.driver == "xdummy":