1
linux/security
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
..
keys [PATCH] Error during attempt to join key management session can leave semaphore pinned 2005-08-04 13:11:14 -07:00
selinux [PATCH] selinux: Fix address length checks in connect hook 2005-07-28 21:46:05 -07:00
capability.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
commoncap.c [PATCH] setuid core dump 2005-06-23 09:45:26 -07:00
dummy.c [PATCH] setuid core dump 2005-06-23 09:45:26 -07:00
Kconfig Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
root_plug.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
seclvl.c [PATCH] sysfs: (rest) if show/store is missing return -EIO 2005-06-20 15:15:03 -07:00
security.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00