[apparmor] [PATCH 1/2] tests: Allow profile names that don't match an exec
Tyler Hicks
tyhicks at canonical.com
Wed May 7 00:20:31 UTC 2014
Allow for the regression tests to specify arbitrary profile names
without hitting fatal errors or getting warnings from mkprofile.pl.
This allows for a test to have a line like this:
genprofile change_profile->':arbitrary_name -- \
image=arbitrary_name addimage:$test
In the example above, $test can call aa_change_onexec("arbitrary_name")
and then re-exec itself to test behavior across exec transitions.
Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
---
tests/regression/apparmor/mkprofile.pl | 8 +++++++-
tests/regression/apparmor/prologue.inc | 4 ----
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/tests/regression/apparmor/mkprofile.pl b/tests/regression/apparmor/mkprofile.pl
index 2ba52bd..59b4a79 100755
--- a/tests/regression/apparmor/mkprofile.pl
+++ b/tests/regression/apparmor/mkprofile.pl
@@ -362,7 +362,7 @@ sub emit_flags($) {
# generate profiles based on cmd line arguments
sub gen_from_args() {
my $bin = shift @ARGV;
- !(-e $bin || $nowarn) && print STDERR "Warning: execname '$bin': no such file or directory\n";
+ my $noaddimage = 0;
unless ($nodefault) {
gen_default_rules();
@@ -396,12 +396,18 @@ sub gen_from_args() {
gen_hat($rule);
} elsif ($rule =~ /^addimage:/) {
gen_addimage($rule);
+ $noaddimage = 1;
} else {
gen_file($rule);
}
}
+ !(-e $bin || $noaddimage || $nowarn) && print STDERR "Warning: execname '$bin': no such file or directory\n";
+
print STDOUT "# Profile autogenerated by $__VERSION__\n";
+ if (not substr($bin, 0, 1) eq "/") {
+ print STDOUT "profile "
+ }
print STDOUT "$bin ";
emit_flags('__no_hat');
print STDOUT "{\n";
diff --git a/tests/regression/apparmor/prologue.inc b/tests/regression/apparmor/prologue.inc
index 716ea7a..9d74ac9 100755
--- a/tests/regression/apparmor/prologue.inc
+++ b/tests/regression/apparmor/prologue.inc
@@ -350,10 +350,6 @@ fi
# mandatory after --
case "$1" in
image=*) imagename=`echo $1 | sed 's/^image=\([^:]*\).*$/\1/'`
- if [ ! -x "$imagename" ]
- then
- fatalerror "invalid imagename specified in input '$1'"
- fi
num_emitted=0
shift
;;
--
1.9.1
More information about the AppArmor
mailing list