diff options
Diffstat (limited to 'security/selinux/hooks.c')
| -rw-r--r-- | security/selinux/hooks.c | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index ad9a9b8e9979..7ce683259357 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -1508,6 +1508,11 @@ static int selinux_genfs_get_sid(struct dentry *dentry,  		}  		rc = security_genfs_sid(&selinux_state, sb->s_type->name,  					path, tclass, sid); +		if (rc == -ENOENT) { +			/* No match in policy, mark as unlabeled. */ +			*sid = SECINITSID_UNLABELED; +			rc = 0; +		}  	}  	free_page((unsigned long)buffer);  	return rc; @@ -4186,7 +4191,7 @@ static int selinux_task_movememory(struct task_struct *p)  			    PROCESS__SETSCHED, NULL);  } -static int selinux_task_kill(struct task_struct *p, struct siginfo *info, +static int selinux_task_kill(struct task_struct *p, struct kernel_siginfo *info,  				int sig, const struct cred *cred)  {  	u32 secid; @@ -7202,7 +7207,10 @@ void selinux_complete_init(void)  /* SELinux requires early initialization in order to label     all processes and objects when they are created. */ -security_initcall(selinux_init); +DEFINE_LSM(selinux) = { +	.name = "selinux", +	.init = selinux_init, +};  #if defined(CONFIG_NETFILTER) |