diff options
author | Stephen Smalley <sds@tycho.nsa.gov> | 2019-01-09 10:55:10 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-01-23 08:10:56 +0100 |
commit | aedbb45f8f6fa41cd2146221c98e2e7d9a3fee05 (patch) | |
tree | 837376c781b1f13304ba65c78fc989c33b12312a /security | |
parent | c6c0e52ab3fbe3915066eca7f072ee5977957eb5 (diff) | |
download | linux-stable-aedbb45f8f6fa41cd2146221c98e2e7d9a3fee05.tar.gz linux-stable-aedbb45f8f6fa41cd2146221c98e2e7d9a3fee05.tar.bz2 linux-stable-aedbb45f8f6fa41cd2146221c98e2e7d9a3fee05.zip |
selinux: fix GPF on invalid policy
commit 5b0e7310a2a33c06edc7eb81ffc521af9b2c5610 upstream.
levdatum->level can be NULL if we encounter an error while loading
the policy during sens_read prior to initializing it. Make sure
sens_destroy handles that case correctly.
Reported-by: syzbot+6664500f0f18f07a5c0e@syzkaller.appspotmail.com
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'security')
-rw-r--r-- | security/selinux/ss/policydb.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c index 175e4dce58df..c483de590ba3 100644 --- a/security/selinux/ss/policydb.c +++ b/security/selinux/ss/policydb.c @@ -726,7 +726,8 @@ static int sens_destroy(void *key, void *datum, void *p) kfree(key); if (datum) { levdatum = datum; - ebitmap_destroy(&levdatum->level->cat); + if (levdatum->level) + ebitmap_destroy(&levdatum->level->cat); kfree(levdatum->level); } kfree(datum); |