All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Wright <chrisw@osdl.org>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
	Zwane Mwaikambo <zwane@arm.linux.org.uk>,
	"Theodore Ts'o" <tytso@mit.edu>,
	"Randy.Dunlap" <rdunlap@xenotime.net>,
	Chuck Wolber <chuckw@quantumlinux.com>,
	torvalds@osdl.org, akpm@osdl.org, alan@lxorguk.ukuu.org.uk,
	David Howells <dhowells@redhat.com>,
	Chris Wright <chrisw@osdl.org>
Subject: [patch 6/8] CAN-2005-2098 Error during attempt to join key management session can leave semaphore pinned
Date: Thu, 11 Aug 2005 15:54:51 -0700	[thread overview]
Message-ID: <20050811225635.464979000@localhost.localdomain> (raw)
In-Reply-To: 20050811225445.404816000@localhost.localdomain

[-- Attachment #1: key-session-join.patch --]
[-- Type: text/plain, Size: 1384 bytes --]

-stable review patch.  If anyone has any  objections, please let us know.
------------------

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: Chris Wright <chrisw@osdl.org>
---
 security/keys/process_keys.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.12.y/security/keys/process_keys.c
===================================================================
--- linux-2.6.12.y.orig/security/keys/process_keys.c
+++ linux-2.6.12.y/security/keys/process_keys.c
@@ -641,7 +641,7 @@ long join_session_keyring(const char *na
 		keyring = keyring_alloc(name, tsk->uid, tsk->gid, 0, NULL);
 		if (IS_ERR(keyring)) {
 			ret = PTR_ERR(keyring);
-			goto error;
+			goto error2;
 		}
 	}
 	else if (IS_ERR(keyring)) {

--

  parent reply	other threads:[~2005-08-11 22:59 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-11 22:54 [patch 0/8] -stable review Chris Wright
2005-08-11 22:54 ` [patch 1/8] [PATCH] sys_set_mempolicy() doesnt check if mode < 0 Chris Wright
2005-08-11 22:54 ` [patch 2/8] [PATCH] Fix SRAT for non dual core AMD systems Chris Wright
2005-08-11 22:54 ` [patch 3/8] [PATCH] x86_64: Fixing smpboot timing problem Chris Wright
2005-08-11 23:33   ` Andi Kleen
2005-08-11 23:43     ` Chris Wright
2005-08-12  2:32       ` Eric W. Biederman
2005-08-12  4:26     ` [PATCH] x86_64: Fix apicid versus cpu# confusion Eric W. Biederman
2005-08-12  5:51       ` yhlu
2005-08-11 22:54 ` [patch 4/8] [PATCH] Update in-kernel zlib routines Chris Wright
2005-08-12  0:01   ` Peter Osterlund
2005-08-12  0:11     ` Chris Wright
2005-08-11 22:54 ` [patch 5/8] Check input buffer size in zisofs Chris Wright
2005-08-12  1:12   ` H. Peter Anvin
2005-08-12  1:16     ` Chris Wright
2005-08-11 22:54 ` Chris Wright [this message]
2005-08-11 22:54 ` [patch 7/8] CAN-2005-2099 Destruction of failed keyring oopses Chris Wright
2005-08-11 22:54 ` [patch 8/8] [PATCH] Module per-cpu alignment cannot always be met Chris Wright
2005-08-22  6:58   ` Denis Vlasenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050811225635.464979000@localhost.localdomain \
    --to=chrisw@osdl.org \
    --cc=akpm@osdl.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=chuckw@quantumlinux.com \
    --cc=dhowells@redhat.com \
    --cc=jmforbes@linuxtx.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rdunlap@xenotime.net \
    --cc=stable@kernel.org \
    --cc=torvalds@osdl.org \
    --cc=tytso@mit.edu \
    --cc=zwane@arm.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.