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@intel.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
This commit is contained in:
Paul Moore
2019-12-23 16:38:36 -05:00
committed by UtsavBalar1231
parent dd3597e71e
commit d13bce8908

View File

@@ -1293,6 +1293,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);