[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <157714208320.505827.13006028554511851520.stgit@chester>
Date: Mon, 23 Dec 2019 18:01:23 -0500
From: Paul Moore <paul@...l-moore.com>
To: selinux@...r.kernel.org
Cc: Jeff Vander Stoep <jeffv@...gle.com>, linux-kernel@...r.kernel.org,
lkp@...ts.01.org
Subject: [PATCH] selinux: ensure the policy has been loaded before reading the
sidtab stats
Check to make sure we have loaded a policy before we query the
sidtab's hash stats. Failure to do so could result in a kernel
panic/oops due to a dereferenced NULL pointer.
Fixes: 66f8e2f03c02 ("selinux: sidtab reverse lookup hash table")
Reported-by: kernel test robot <lkp@...el.com>
Signed-off-by: Paul Moore <paul@...l-moore.com>
---
security/selinux/ss/services.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
index 743b85ede4ef..c9e38f1ede02 100644
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
@@ -1286,6 +1286,12 @@ int security_sidtab_hash_stats(struct selinux_state *state, char *page)
{
int rc;
+ if (!state->initialized) {
+ pr_err("SELinux: %s: called before initial load_policy\n",
+ __func__);
+ return -EINVAL;
+ }
+
read_lock(&state->ss->policy_rwlock);
rc = sidtab_hash_stats(state->ss->sidtab, page);
read_unlock(&state->ss->policy_rwlock);
Powered by blists - more mailing lists