Skip to content

Commit

Permalink
SELinux: do all flags twiddling in one place
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Eric Paris committed Jul 25, 2013
1 parent 12f348b commit eadcabc
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions security/selinux/hooks.c
Original file line number Diff line number Diff line change
Expand Up @@ -387,8 +387,6 @@ static int sb_finish_set_opts(struct super_block *sb)
}
}

sbsec->flags |= (SE_SBINITIALIZED | SBLABEL_MNT);

if (sbsec->behavior > ARRAY_SIZE(labeling_behaviors))
printk(KERN_ERR "SELinux: initialized (dev %s, type %s), unknown behavior\n",
sb->s_id, sb->s_type->name);
Expand All @@ -397,11 +395,11 @@ static int sb_finish_set_opts(struct super_block *sb)
sb->s_id, sb->s_type->name,
labeling_behaviors[sbsec->behavior-1]);

if (sbsec->behavior == SECURITY_FS_USE_GENFS ||
sbsec->behavior == SECURITY_FS_USE_MNTPOINT ||
sbsec->behavior == SECURITY_FS_USE_NONE ||
sbsec->behavior > ARRAY_SIZE(labeling_behaviors))
sbsec->flags &= ~SBLABEL_MNT;
sbsec->flags |= SE_SBINITIALIZED;
if (sbsec->behavior == SECURITY_FS_USE_XATTR ||
sbsec->behavior == SECURITY_FS_USE_TRANS ||
sbsec->behavior == SECURITY_FS_USE_TASK)
sbsec->flags |= SBLABEL_MNT;

/* Special handling for sysfs. Is genfs but also has setxattr handler*/
if (strncmp(sb->s_type->name, "sysfs", sizeof("sysfs")) == 0)
Expand Down

0 comments on commit eadcabc

Please sign in to comment.