diff options
author | Stephen Smalley <sds@tycho.nsa.gov> | 2019-01-09 10:55:10 -0500 |
---|---|---|
committer | Paul Moore <paul@paul-moore.com> | 2019-01-10 20:23:05 -0500 |
commit | 5b0e7310a2a33c06edc7eb81ffc521af9b2c5610 (patch) | |
tree | 7026349a619080870f87e1648ae8387c1ef574c1 /security/selinux | |
parent | ee1a84fdfeedfd7362e9a8a8f15fedc3482ade2d (diff) |
selinux: fix GPF on invalid policy
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>
Diffstat (limited to 'security/selinux')
-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 a50d625e7946..c1c31e33657a 100644 --- a/security/selinux/ss/policydb.c +++ b/security/selinux/ss/policydb.c | |||
@@ -732,7 +732,8 @@ static int sens_destroy(void *key, void *datum, void *p) | |||
732 | kfree(key); | 732 | kfree(key); |
733 | if (datum) { | 733 | if (datum) { |
734 | levdatum = datum; | 734 | levdatum = datum; |
735 | ebitmap_destroy(&levdatum->level->cat); | 735 | if (levdatum->level) |
736 | ebitmap_destroy(&levdatum->level->cat); | ||
736 | kfree(levdatum->level); | 737 | kfree(levdatum->level); |
737 | } | 738 | } |
738 | kfree(datum); | 739 | kfree(datum); |