summaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
authorMarc Dionne <marc.c.dionne@gmail.com>2009-09-14 11:46:23 (GMT)
committerJames Morris <jmorris@namei.org>2009-09-14 23:10:59 (GMT)
commit5c84342a3e147a23752276650340801c237d0e56 (patch)
treea57a81dd9b48f8bd837ab13e319375c248cc7b89 /security
parent4a5d6ba1914d1bf1fcfb5e15834c29d84a879219 (diff)
downloadlinux-fsl-qoriq-5c84342a3e147a23752276650340801c237d0e56.tar.xz
KEYS: Unlock tasklist when exiting early from keyctl_session_to_parent
When we exit early from keyctl_session_to_parent because of permissions or because the session keyring is the same as the parent, we need to unlock the tasklist. The missing unlock causes the system to hang completely when using keyctl(KEYCTL_SESSION_TO_PARENT) with a keyring shared with the parent. Signed-off-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 'security')
-rw-r--r--security/keys/keyctl.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
index 74c9685..60983f3 100644
--- a/security/keys/keyctl.c
+++ b/security/keys/keyctl.c
@@ -1319,6 +1319,7 @@ long keyctl_session_to_parent(void)
already_same:
ret = 0;
not_permitted:
+ write_unlock_irq(&tasklist_lock);
put_cred(cred);
return ret;