[apparmor] [patch] Fix aa_log_end_msg() in rc.apparmor.suse

Christian Boltz apparmor at cboltz.de
Wed Jul 22 19:42:05 UTC 2015


Hello,

"rcapparmor kill" results in a funny error message:
    /lib/apparmor/rc.apparmor.functions: line 441: return: -v: invalid option
    return: usage: return [n]

SLE12 includes a patch that prevents this error message, but also
prevents that $? is handed over correctly to rc_status. This means that
"rcapparmor kill" will happily display "done" even with a compiled-in
apparmor module that can't be unloaded.

This patch is the improved version - it adds a small helper function to
set $? (as handed over to aa_log_end_msg()) and then calls rc_status -v.
This means that "rcapparmor kill" now shows "failed" because it's
impossible to unload something that is compiled directly into the
kernel.

References: https://bugzilla.opensuse.org/show_bug.cgi?id=862170 (non-public)


I propose this patch for trunk and 2.9.


[ apparmor-fix-aa_log_end_msg.diff ]

=== modified file 'parser/rc.apparmor.suse'
--- parser/rc.apparmor.suse     2011-09-15 18:20:23 +0000
+++ parser/rc.apparmor.suse     2015-07-22 19:23:28 +0000
@@ -94,12 +94,13 @@
        echo -e "$rc_skipped"
 }
 
+_set_status() {
+       return $1
+}
+
 aa_log_end_msg() {
-       v="-v"
-       if [ "$1" != '0' ]; then
-               rc="-v$1"
-       fi
-       rc_status $v
+       _set_status $1
+       rc_status -v
 }
 
 usage() {


Regards,

Christian Boltz
-- 
A good programmer is someone who always looks both ways
before crossing a one-way street. [Doug Linder]




More information about the AppArmor mailing list