linux/security/keys
David Howells bcf945d36f [PATCH] Error during attempt to join key management session can leave semaphore pinned
The attached patch prevents an error during the key session joining operation
from hanging future joins in the D state [CAN-2005-2098].

The problem is that the error handling path for the KEYCTL_JOIN_SESSION_KEYRING
operation has one error path that doesn't release the session management
semaphore. Further attempts to get the semaphore will then sleep for ever in
the D state.

This can happen in four situations, all involving an attempt to allocate a new
session keyring:

 (1) ENOMEM.

 (2) The users key quota being reached.

 (3) A keyring name that is an empty string.

 (4) A keyring name that is too long.

Any user may attempt this operation, and so any user can cause the problem to
occur.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-04 13:11:14 -07:00
..
compat.c [PATCH] Keys: Make request-key create an authorisation key 2005-06-24 00:05:19 -07:00
internal.h [PATCH] Keys: Make request-key create an authorisation key 2005-06-24 00:05:19 -07:00
key.c [PATCH] RCU: clean up a few remaining synchronize_kernel() calls 2005-06-25 16:24:38 -07:00
keyctl.c [PATCH] Keys: Fix key management syscall interface bugs 2005-08-04 08:20:47 -07:00
keyring.c [PATCH] Keys: Base keyring size on key pointer not key struct 2005-07-07 18:23:46 -07:00
Makefile [PATCH] Keys: Make request-key create an authorisation key 2005-06-24 00:05:19 -07:00
proc.c [PATCH] keys: Discard key spinlock and use RCU for key payload 2005-06-24 00:05:18 -07:00
process_keys.c [PATCH] Error during attempt to join key management session can leave semaphore pinned 2005-08-04 13:11:14 -07:00
request_key_auth.c [PATCH] Keys: Make request-key create an authorisation key 2005-06-24 00:05:19 -07:00
request_key.c [PATCH] Keys: Fix key management syscall interface bugs 2005-08-04 08:20:47 -07:00
user_defined.c [PATCH] eCryptfs: export user key type 2005-06-24 00:05:19 -07:00