aboutsummaryrefslogtreecommitdiffstats
path: root/security/selinux/hooks.c
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2012-08-24 15:59:14 -0400
committerEric Paris <eparis@redhat.com>2013-07-25 13:03:03 -0400
commiteadcabc697e904e0d93d10070a324d8855740b91 (patch)
tree21905e7bc082235cef46df9342d19a871e6b90f5 /security/selinux/hooks.c
parent12f348b9dcf6d9616c86a049c3c8700f9dc0af55 (diff)
SELinux: do all flags twiddling in one place
Currently we set the initialize and seclabel flag in one place. Do some unrelated printk then we unset the seclabel flag. Eww. Instead do the flag twiddling in one place in the code not seperated by unrelated printk. Also don't set and unset the seclabel flag. Only set it if we need to. Signed-off-by: Eric Paris <eparis@redhat.com>
Diffstat (limited to 'security/selinux/hooks.c')
-rw-r--r--security/selinux/hooks.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 344f4f999681..ca0a1c671f0e 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -387,8 +387,6 @@ static int sb_finish_set_opts(struct super_block *sb)
387 } 387 }
388 } 388 }
389 389
390 sbsec->flags |= (SE_SBINITIALIZED | SBLABEL_MNT);
391
392 if (sbsec->behavior > ARRAY_SIZE(labeling_behaviors)) 390 if (sbsec->behavior > ARRAY_SIZE(labeling_behaviors))
393 printk(KERN_ERR "SELinux: initialized (dev %s, type %s), unknown behavior\n", 391 printk(KERN_ERR "SELinux: initialized (dev %s, type %s), unknown behavior\n",
394 sb->s_id, sb->s_type->name); 392 sb->s_id, sb->s_type->name);
@@ -397,11 +395,11 @@ static int sb_finish_set_opts(struct super_block *sb)
397 sb->s_id, sb->s_type->name, 395 sb->s_id, sb->s_type->name,
398 labeling_behaviors[sbsec->behavior-1]); 396 labeling_behaviors[sbsec->behavior-1]);
399 397
400 if (sbsec->behavior == SECURITY_FS_USE_GENFS || 398 sbsec->flags |= SE_SBINITIALIZED;
401 sbsec->behavior == SECURITY_FS_USE_MNTPOINT || 399 if (sbsec->behavior == SECURITY_FS_USE_XATTR ||
402 sbsec->behavior == SECURITY_FS_USE_NONE || 400 sbsec->behavior == SECURITY_FS_USE_TRANS ||
403 sbsec->behavior > ARRAY_SIZE(labeling_behaviors)) 401 sbsec->behavior == SECURITY_FS_USE_TASK)
404 sbsec->flags &= ~SBLABEL_MNT; 402 sbsec->flags |= SBLABEL_MNT;
405 403
406 /* Special handling for sysfs. Is genfs but also has setxattr handler*/ 404 /* Special handling for sysfs. Is genfs but also has setxattr handler*/
407 if (strncmp(sb->s_type->name, "sysfs", sizeof("sysfs")) == 0) 405 if (strncmp(sb->s_type->name, "sysfs", sizeof("sysfs")) == 0)