~mathiaz/apparmor/ubuntu-mathiaz

« back to all changes in this revision

Viewing changes to parser/rc.apparmor.functions

  • Committer: Mathias Gug
  • Date: 2008-02-04 18:57:00 UTC
  • mfrom: (885.1.5 apparmor)
  • Revision ID: mathiaz@ubuntu.com-20080204185700-wwlyq0ksssxclv8w
Merge  ubuntu branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
101
101
# keep exit status from parser during profile load.  0 is good, 1 is bad
102
102
STATUS=0
103
103
 
 
104
# Test if the apparmor "module" is present.
 
105
is_apparmor_present() {
 
106
        local modules=$1
 
107
        shift
 
108
 
 
109
        while [ $# -gt 0 ] ; do
 
110
                modules="$modules${modules:+|}$1"
 
111
                shift
 
112
        done
 
113
 
 
114
        # check for subdomainfs version of module
 
115
        grep -qE "^($modules)[[:space:]]" /proc/modules
 
116
        
 
117
        if [ $? -ne 0 ] ; then
 
118
                ls /sys/module/apparmor | grep -qE "^($modules)" 
 
119
        fi
 
120
 
 
121
        return $?
 
122
}
 
123
 
104
124
# This set of patterns to skip needs to be kept in sync with
105
125
# SubDomain.pm::isSkippableFile()
106
126
skip_profile() {
244
264
        fi
245
265
 
246
266
        # check for subdomainfs version of module
247
 
        grep -qE "^(subdomain|apparmor)[[:space:]]" /proc/modules
 
267
        is_apparmor_present apparmor subdomain
 
268
 
248
269
        return $?
249
270
}
250
271
 
290
311
                MODULE=${OLD_MODULE}
291
312
        fi
292
313
 
293
 
        if ! grep -qE "^(subdomain|apparmor)[[:space:]]" /proc/modules ; then
 
314
        if ! is_apparmor_present apparmor subdomain ; then
294
315
                aa_action "Loading AppArmor module" /sbin/modprobe -q $MODULE $1
295
316
                rc=$?
296
317
                if [ $rc -ne 0 ] ; then
382
403
        fi
383
404
 
384
405
        unmount_subdomainfs
385
 
        if grep -qE "^apparmor[[:space:]]" /proc/modules ; then
 
406
        if is_apparmor_present apparmor ; then
386
407
                MODULE=apparmor
387
 
        elif grep -qE "^subdomain[[:space:]]" /proc/modules ; then
 
408
        elif is_apparmor_present subdomain ; then
388
409
                MODULE=subdomain
389
410
        else
390
411
                aa_log_failure_msg "Killing AppArmor module - failed, AppArmor is builtin"
455
476
                ${SD_STATUS} --verbose
456
477
                return $?
457
478
        fi
458
 
        if ! grep -qE "^(subdomain|apparmor)[[:space:]]" /proc/modules ; then
 
479
        if ! is_apparmor_present apparmor subdomain ; then
459
480
                echo "AppArmor is not loaded."
460
481
                rc=1
461
482
        else