diff options
author | Tim Schumacher <tim.schumacher1@huawei.com> | 2025-03-07 10:56:43 +0100 |
---|---|---|
committer | Paul Moore <paul@paul-moore.com> | 2025-03-07 14:38:34 -0500 |
commit | 6ae0042f4d3f331e841495eb0a3d51598e593ec2 (patch) | |
tree | cdd38335c3cbf968f98b64087c5beb166c2a6d81 | |
parent | 2c2b1e059792f610bae4fee8ed517b8ce9c585fb (diff) |
selinux: Chain up tool resolving errors in install_policy.sh
Subshell evaluations are not exempt from errexit, so if a command is
not available, `which` will fail and exit the script as a whole.
This causes the helpful error messages to not be printed if they are
tacked on using a `$?` comparison.
Resolve the issue by using chains of logical operators, which are not
subject to the effects of errexit.
Fixes: e37c1877ba5b1 ("scripts/selinux: modernize mdp")
Signed-off-by: Tim Schumacher <tim.schumacher1@huawei.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
-rwxr-xr-x | scripts/selinux/install_policy.sh | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/scripts/selinux/install_policy.sh b/scripts/selinux/install_policy.sh index 24086793b0d8..db40237e60ce 100755 --- a/scripts/selinux/install_policy.sh +++ b/scripts/selinux/install_policy.sh @@ -6,27 +6,24 @@ if [ `id -u` -ne 0 ]; then exit 1 fi -SF=`which setfiles` -if [ $? -eq 1 ]; then +SF=`which setfiles` || { echo "Could not find setfiles" echo "Do you have policycoreutils installed?" exit 1 -fi +} -CP=`which checkpolicy` -if [ $? -eq 1 ]; then +CP=`which checkpolicy` || { echo "Could not find checkpolicy" echo "Do you have checkpolicy installed?" exit 1 -fi +} VERS=`$CP -V | awk '{print $1}'` -ENABLED=`which selinuxenabled` -if [ $? -eq 1 ]; then +ENABLED=`which selinuxenabled` || { echo "Could not find selinuxenabled" echo "Do you have libselinux-utils installed?" exit 1 -fi +} if selinuxenabled; then echo "SELinux is already enabled" |