diff options
author | ajs124 <ajs124@users.noreply.github.com> | 2024-02-25 15:16:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-25 15:16:23 +0100 |
commit | 991ec05997c74dd8158394db77e1164bb31388be (patch) | |
tree | 77e44a9c85789eee1ad736d9732400c836367ada /pkgs/os-specific/linux/apparmor | |
parent | 9b733e0efe1d60d2a793796a229f585bc0093e88 (diff) | |
parent | b69ffeb3a27b44c811f2c2f744f616c049142901 (diff) |
Merge pull request #285915 from herrwiese/for-master/fix-273164
apparmor-utils: fix aa-remove-unknown read check
Diffstat (limited to 'pkgs/os-specific/linux/apparmor')
-rw-r--r-- | pkgs/os-specific/linux/apparmor/0001-aa-remove-unknown_empty-ruleset.patch | 30 | ||||
-rw-r--r-- | pkgs/os-specific/linux/apparmor/default.nix | 4 |
2 files changed, 33 insertions, 1 deletions
diff --git a/pkgs/os-specific/linux/apparmor/0001-aa-remove-unknown_empty-ruleset.patch b/pkgs/os-specific/linux/apparmor/0001-aa-remove-unknown_empty-ruleset.patch new file mode 100644 index 0000000000000..ce2a0e7cc5b3c --- /dev/null +++ b/pkgs/os-specific/linux/apparmor/0001-aa-remove-unknown_empty-ruleset.patch @@ -0,0 +1,30 @@ +commit 166afaf144d6473464975438353257359dd51708 +Author: Andreas Wiese <andreas.wiese@kernkonzept.com> +Date: Thu Feb 1 11:35:02 2024 +0100 + + aa-remove-unknown: fix readability check + + This check is intended for ensuring that the profiles file can actually + be opened. The *actual* check is performed by the shell, not the read + utility, which won't even be executed if the input redirection (and + hence the test) fails. + + If the test succeeds, though, using `read` here might actually + jeopardize the test result if there are no profiles loaded and the file + is empty. + + This commit fixes that case by simply using `true` instead of `read`. + +diff --git a/utils/aa-remove-unknown b/utils/aa-remove-unknown +index 0e00d6a0..3351feef 100755 +--- a/utils/aa-remove-unknown ++++ b/utils/aa-remove-unknown +@@ -63,7 +63,7 @@ fi + # We have to do this check because error checking awk's getline() below is + # tricky and, as is, results in an infinite loop when apparmorfs returns an + # error from open(). +-if ! IFS= read -r _ < "$PROFILES" ; then ++if ! true < "$PROFILES" ; then + echo "ERROR: Unable to read apparmorfs profiles file" 1>&2 + exit 1 + elif [ ! -w "$REMOVE" ] ; then diff --git a/pkgs/os-specific/linux/apparmor/default.nix b/pkgs/os-specific/linux/apparmor/default.nix index 97fb7f0a6190f..cebae9b8402dd 100644 --- a/pkgs/os-specific/linux/apparmor/default.nix +++ b/pkgs/os-specific/linux/apparmor/default.nix @@ -56,7 +56,9 @@ let --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h" ''; - patches = lib.optionals stdenv.hostPlatform.isMusl [ + patches = [ + ./0001-aa-remove-unknown_empty-ruleset.patch + ] ++ lib.optionals stdenv.hostPlatform.isMusl [ (fetchpatch { url = "https://git.alpinelinux.org/aports/plain/testing/apparmor/0003-Added-missing-typedef-definitions-on-parser.patch?id=74b8427cc21f04e32030d047ae92caa618105b53"; name = "0003-Added-missing-typedef-definitions-on-parser.patch"; |