[apparmor] [PATCH v3 9/7] tests: Add negative tests for missing individual AF_UNIX pathname perms
Tyler Hicks
tyhicks at canonical.com
Mon Sep 29 23:56:08 UTC 2014
Iterate through the individual client and server AF_UNIX pathname
permissions and remove them, one-by-one, to verify that the test fails.
Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
---
* New patch to address feedback from sbeattie
tests/regression/apparmor/unix_socket_pathname.sh | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/tests/regression/apparmor/unix_socket_pathname.sh b/tests/regression/apparmor/unix_socket_pathname.sh
index 30b743c..344c86d 100755
--- a/tests/regression/apparmor/unix_socket_pathname.sh
+++ b/tests/regression/apparmor/unix_socket_pathname.sh
@@ -78,6 +78,7 @@ testsocktype()
local testdesc="AF_UNIX pathname socket ($socktype)"
local args="$sockpath $socktype $message $client"
local af_unix
+ local af_unix_access
removesockets $sockpath $client_sockpath
@@ -125,6 +126,17 @@ testsocktype()
genprofile $sockpath:$okserver $client:Ux
runchecktest "$testdesc; confined server w/o af_unix" fail $args
removesockets $sockpath $client_sockpath
+
+ # Split the list of AF_UNIX accesses up at the ',' characters
+ # so that they can be iterated through. Remove each access,
+ # one-by-one, and verify that the test fails.
+ for access in ${af_unix_okserver//,/ }; do
+ # FAIL - server w/ a missing af_unix access
+
+ genprofile $sockpath:$okserver "unix:(${af_unix_okserver//$access/})" $client:Ux
+ runchecktest "$testdesc; confined server w/ a missing af_unix access ($access)" fail $args
+ removesockets $sockpath $client_sockpath
+ done
fi
server="$sockpath:$okserver $client_sockpath:$okserver $af_unix $client:px"
@@ -167,6 +179,17 @@ testsocktype()
genprofile $server -- image=$client $sockpath:$okclient
runchecktest "$testdesc; confined client w/o af_unix" fail $args
removesockets $sockpath $client_sockpath
+
+ # Split the list of AF_UNIX accesses up at the ',' characters
+ # so that they can be iterated through. Remove each access,
+ # one-by-one, and verify that the test fails.
+ for access in ${af_unix_okclient//,/ }; do
+ # FAIL - client w/ a missing af_unix access
+
+ genprofile $server -- image=$client $sockpath:$okclient "unix:(${af_unix_okclient//$access/})"
+ runchecktest "$testdesc; confined client w/ a missing af_unix access ($access)" fail $args
+ removesockets $sockpath $client_sockpath
+ done
fi
removeprofile
--
2.1.0
More information about the AppArmor
mailing list