OSDN Git Service

apparmor: add check for apparmor enabled in module parameters missing it
authorJohn Johansen <john.johansen@canonical.com>
Mon, 16 Jan 2017 08:43:11 +0000 (00:43 -0800)
committerJohn Johansen <john.johansen@canonical.com>
Mon, 16 Jan 2017 09:18:53 +0000 (01:18 -0800)
Signed-off-by: John Johansen <john.johansen@canonical.com>
security/apparmor/lsm.c

index c249ea0..fc82ac0 100644 (file)
@@ -750,6 +750,8 @@ static int param_get_aalockpolicy(char *buffer, const struct kernel_param *kp)
 {
        if (!policy_view_capable(NULL))
                return -EPERM;
+       if (!apparmor_enabled)
+               return -EINVAL;
        return param_get_bool(buffer, kp);
 }
 
@@ -757,6 +759,8 @@ static int param_set_aabool(const char *val, const struct kernel_param *kp)
 {
        if (!policy_admin_capable(NULL))
                return -EPERM;
+       if (!apparmor_enabled)
+               return -EINVAL;
        return param_set_bool(val, kp);
 }
 
@@ -764,6 +768,8 @@ static int param_get_aabool(char *buffer, const struct kernel_param *kp)
 {
        if (!policy_view_capable(NULL))
                return -EPERM;
+       if (!apparmor_enabled)
+               return -EINVAL;
        return param_get_bool(buffer, kp);
 }
 
@@ -771,6 +777,8 @@ static int param_set_aauint(const char *val, const struct kernel_param *kp)
 {
        if (!policy_admin_capable(NULL))
                return -EPERM;
+       if (!apparmor_enabled)
+               return -EINVAL;
        return param_set_uint(val, kp);
 }
 
@@ -778,6 +786,8 @@ static int param_get_aauint(char *buffer, const struct kernel_param *kp)
 {
        if (!policy_view_capable(NULL))
                return -EPERM;
+       if (!apparmor_enabled)
+               return -EINVAL;
        return param_get_uint(buffer, kp);
 }