]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Jun 2012 07:15:43 +0000 (15:15 +0800)
commit 154c50ca4eb9ae472f50b6a481213e21ead4457d upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
security/selinux/selinuxfs.c

index 48a7d0014b4f4f5c4f40d92de9cb029bdf149d45..ac1e99e1ca57ce5869e5c6ea36d46053a857a1d0 100644 (file)
@@ -1232,6 +1232,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;