diff options
author | David Howells <dhowells@redhat.com> | 2009-09-14 07:45:39 -0400 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2009-09-14 19:10:57 -0400 |
commit | 4a5d6ba1914d1bf1fcfb5e15834c29d84a879219 (patch) | |
tree | 2e9e7895b1b9d2ac4a88e1fc9127ba644a7d0679 /kernel/cred.c | |
parent | 4e6d0bffd3d72a32b620525c9007d2482c731775 (diff) |
CRED: Allow put_cred() to cope with a NULL groups list
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>
Diffstat (limited to 'kernel/cred.c')
-rw-r--r-- | kernel/cred.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/cred.c b/kernel/cred.c index 006fcab009d..d7f7a01082e 100644 --- a/kernel/cred.c +++ b/kernel/cred.c | |||
@@ -147,7 +147,8 @@ static void put_cred_rcu(struct rcu_head *rcu) | |||
147 | key_put(cred->thread_keyring); | 147 | key_put(cred->thread_keyring); |
148 | key_put(cred->request_key_auth); | 148 | key_put(cred->request_key_auth); |
149 | release_tgcred(cred); | 149 | release_tgcred(cred); |
150 | put_group_info(cred->group_info); | 150 | if (cred->group_info) |
151 | put_group_info(cred->group_info); | ||
151 | free_uid(cred->user); | 152 | free_uid(cred->user); |
152 | kmem_cache_free(cred_jar, cred); | 153 | kmem_cache_free(cred_jar, cred); |
153 | } | 154 | } |