[PATCH] KEYS: Unlock tasklist when exiting early fromkeyctl_session_to_parent

From: David Howells
Date: Mon Sep 14 2009 - 07:47:29 EST


From: Marc Dionne <marc.c.dionne@xxxxxxxxx>

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@xxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
---

security/keys/keyctl.c | 1 +
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;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/