summaryrefslogtreecommitdiff
path: root/security/selinux/selinuxfs.c
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2012-04-04 17:47:11 (GMT)
committerEric Paris <eparis@redhat.com>2012-04-09 16:22:58 (GMT)
commit154c50ca4eb9ae472f50b6a481213e21ead4457d (patch)
tree8f496c340514e7041c50e212aa1d45a18ca7476c /security/selinux/selinuxfs.c
parent92ae9e82d9a2c4b9b388d6a9e7a4b2ccb0b4452f (diff)
downloadlinux-154c50ca4eb9ae472f50b6a481213e21ead4457d.tar.xz
SELinux: if sel_make_bools errors don't leave inconsistent state
We reset the bool names and values array to NULL, but do not reset the number of entries in these arrays to 0. If we error out and then get back into this function we will walk these NULL pointers based on the belief that they are non-zero length. Signed-off-by: Eric Paris <eparis@redhat.com> cc: stable@kernel.org
Diffstat (limited to 'security/selinux/selinuxfs.c')
-rw-r--r--security/selinux/selinuxfs.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c
index 640feaa..4e93f9e 100644
--- a/security/selinux/selinuxfs.c
+++ b/security/selinux/selinuxfs.c
@@ -1233,6 +1233,7 @@ static int sel_make_bools(void)
kfree(bool_pending_names[i]);
kfree(bool_pending_names);
kfree(bool_pending_values);
+ bool_num = 0;
bool_pending_names = NULL;
bool_pending_values = NULL;