summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2012-04-04 13:47:11 -0400
committerEric Paris <eparis@redhat.com>2012-04-09 12:22:58 -0400
commit154c50ca4eb9ae472f50b6a481213e21ead4457d (patch)
tree8f496c340514e7041c50e212aa1d45a18ca7476c
parent92ae9e82d9a2c4b9b388d6a9e7a4b2ccb0b4452f (diff)
downloadlinux-154c50ca4eb9ae472f50b6a481213e21ead4457d.tar.gz
linux-154c50ca4eb9ae472f50b6a481213e21ead4457d.tar.bz2
linux-154c50ca4eb9ae472f50b6a481213e21ead4457d.zip
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
-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 640feaa06c08..4e93f9ef970b 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;