Since we check /sys/kernel/security/ files when deciding whether
apparmor is enabled, and that might not be mounted in the container,
we cannot re-make the decision at apparmor_process_label_set() time.
Luckily we don't have to - just cache the decision made at
lsm_apparmor_drv_init().
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
lxc_log_define(lxc_apparmor, lxc);
+/* set by lsm_apparmor_drv_init if true */
+static int aa_enabled = 0;
+
#define AA_DEF_PROFILE "lxc-container-default"
#define AA_MOUNT_RESTR "/sys/kernel/security/apparmor/features/mount/mask"
#define AA_ENABLED_FILE "/sys/module/apparmor/parameters/enabled"
static int apparmor_process_label_set(const char *label, int use_default,
int on_exec)
{
- if (!apparmor_enabled())
+ if (!aa_enabled)
return 0;
if (!label) {
{
if (!apparmor_enabled())
return NULL;
+ aa_enabled = 1;
return &apparmor_drv;
}