]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
KEYS: Unlock tasklist when exiting early from keyctl_session_to_parent
authorMarc Dionne <marc.c.dionne@gmail.com>
Mon, 14 Sep 2009 11:46:23 +0000 (12:46 +0100)
committerJames Morris <jmorris@namei.org>
Mon, 14 Sep 2009 23:10:59 +0000 (09:10 +1000)
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>
security/keys/keyctl.c

index 74c96852459281cab2b959a0b2db55666c7c9a7b..60983f38852e4243ec2bba80dab1aa277a090711 100644 (file)
@@ -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;