]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
selinux: skip bounded transition processing if the policy isn't loaded
authorPaul Moore <paul@paul-moore.com>
Tue, 5 Dec 2017 22:17:43 +0000 (17:17 -0500)
committerSasha Levin <alexander.levin@microsoft.com>
Sun, 4 Mar 2018 15:28:24 +0000 (10:28 -0500)
[ Upstream commit 4b14752ec4e0d87126e636384cf37c8dd9df157c ]

We can't do anything reasonable in security_bounded_transition() if we
don't have a policy loaded, and in fact we could run into problems
with some of the code inside expecting a policy.  Fix these problems
like we do many others in security/selinux/ss/services.c by checking
to see if the policy is loaded (ss_initialized) and returning quickly
if it isn't.

Reported-by: syzbot <syzkaller-bugs@googlegroups.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Reviewed-by: James Morris <james.l.morris@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
security/selinux/ss/services.c

index 3308a8215180d4f66b6c906ca2b7bf1b98f9b71e..31d1d2ebd6f2fdd58b8e7ffeabd5def47f900dbc 100644 (file)
@@ -823,6 +823,9 @@ int security_bounded_transition(u32 old_sid, u32 new_sid)
        int index;
        int rc;
 
+       if (!ss_initialized)
+               return 0;
+
        read_lock(&policy_rwlock);
 
        rc = -EINVAL;