diff options
Diffstat (limited to 'security/selinux/selinuxfs.c')
| -rw-r--r-- | security/selinux/selinuxfs.c | 11 | 
1 files changed, 4 insertions, 7 deletions
diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c index d7018bfa1f0..4e93f9ef970 100644 --- a/security/selinux/selinuxfs.c +++ b/security/selinux/selinuxfs.c @@ -496,6 +496,7 @@ static const struct file_operations sel_policy_ops = {  	.read		= sel_read_policy,  	.mmap		= sel_mmap_policy,  	.release	= sel_release_policy, +	.llseek		= generic_file_llseek,  };  static ssize_t sel_write_load(struct file *file, const char __user *buf, @@ -1232,6 +1233,7 @@ static int sel_make_bools(void)  		kfree(bool_pending_names[i]);  	kfree(bool_pending_names);  	kfree(bool_pending_values); +	bool_num = 0;  	bool_pending_names = NULL;  	bool_pending_values = NULL; @@ -1532,11 +1534,6 @@ static int sel_make_initcon_files(struct dentry *dir)  	return 0;  } -static inline unsigned int sel_div(unsigned long a, unsigned long b) -{ -	return a / b - (a % b < 0); -} -  static inline unsigned long sel_class_to_ino(u16 class)  {  	return (class * (SEL_VEC_MAX + 1)) | SEL_CLASS_INO_OFFSET; @@ -1544,7 +1541,7 @@ static inline unsigned long sel_class_to_ino(u16 class)  static inline u16 sel_ino_to_class(unsigned long ino)  { -	return sel_div(ino & SEL_INO_MASK, SEL_VEC_MAX + 1); +	return (ino & SEL_INO_MASK) / (SEL_VEC_MAX + 1);  }  static inline unsigned long sel_perm_to_ino(u16 class, u32 perm) @@ -1831,7 +1828,7 @@ static int sel_fill_super(struct super_block *sb, void *data, int silent)  		[SEL_REJECT_UNKNOWN] = {"reject_unknown", &sel_handle_unknown_ops, S_IRUGO},  		[SEL_DENY_UNKNOWN] = {"deny_unknown", &sel_handle_unknown_ops, S_IRUGO},  		[SEL_STATUS] = {"status", &sel_handle_status_ops, S_IRUGO}, -		[SEL_POLICY] = {"policy", &sel_policy_ops, S_IRUSR}, +		[SEL_POLICY] = {"policy", &sel_policy_ops, S_IRUGO},  		/* last one */ {""}  	};  	ret = simple_fill_super(sb, SELINUX_MAGIC, selinux_files);  |