From: Stephen Smalley Date: Wed, 9 Jan 2019 15:55:10 +0000 (-0500) Subject: selinux: fix GPF on invalid policy X-Git-Tag: v3.18.133~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f643372c915bbb9d11787b785890642fce3c1ab2;p=profile%2Fwearable%2Fplatform%2Fkernel%2Flinux-3.18-exynos7270.git 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 Signed-off-by: Paul Moore Signed-off-by: Greg Kroah-Hartman --- diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c index bc2a586..0b31d61 100644 --- a/security/selinux/ss/policydb.c +++ b/security/selinux/ss/policydb.c @@ -717,7 +717,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);