SELinux: if sel_make_bools errors don't leave inconsistent state
authorEric Paris <eparis@redhat.com>
Wed, 4 Apr 2012 17:47:11 +0000 (13:47 -0400)
committerEric Paris <eparis@redhat.com>
Mon, 9 Apr 2012 16:22:58 +0000 (12:22 -0400)
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

security/selinux/selinuxfs.c

index 640feaa06c08ba8c3a2baf8550f838878865639f..4e93f9ef970b25a78bca26ab2a49962024b3cb50 100644 (file)
@@ -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;