CRED: Allow put_cred() to cope with a NULL groups list
authorDavid Howells <dhowells@redhat.com>
Mon, 14 Sep 2009 11:45:39 +0000 (12:45 +0100)
committerJames Morris <jmorris@namei.org>
Mon, 14 Sep 2009 23:10:57 +0000 (09:10 +1000)
put_cred() will oops if given a NULL groups list, but that is now possible with
the existence of cred_alloc_blank(), as used in keyctl_session_to_parent().

Added in commit:

commit ee18d64c1f632043a02e6f5ba5e045bb26a5465f
Author: David Howells <dhowells@redhat.com>
Date:   Wed Sep 2 09:14:21 2009 +0100
KEYS: Add a keyctl to install a process's session keyring on its parent [try #6]

Reported-by: Marc Dionne <marc.c.dionne@gmail.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <jmorris@namei.org>
kernel/cred.c

index 006fcab009d5053d628ef44075612f2a966f22be..d7f7a01082eb507ff78605a18e1f9faa79b20e61 100644 (file)
@@ -147,7 +147,8 @@ static void put_cred_rcu(struct rcu_head *rcu)
        key_put(cred->thread_keyring);
        key_put(cred->request_key_auth);
        release_tgcred(cred);
-       put_group_info(cred->group_info);
+       if (cred->group_info)
+               put_group_info(cred->group_info);
        free_uid(cred->user);
        kmem_cache_free(cred_jar, cred);
 }