From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S268355AbUIWJtI (ORCPT ); Thu, 23 Sep 2004 05:49:08 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S268356AbUIWJtC (ORCPT ); Thu, 23 Sep 2004 05:49:02 -0400 Received: from mx1.redhat.com ([66.187.233.31]:2538 "EHLO mx1.redhat.com") by vger.kernel.org with ESMTP id S268355AbUIWJs5 (ORCPT ); Thu, 23 Sep 2004 05:48:57 -0400 From: David Howells To: akpm@osdl.org cc: linux-kernel@vger.kernel.org Subject: [PATCH] Link user keyrings together correctly User-Agent: EMH/1.14.1 SEMI/1.14.5 (Awara-Onsen) FLIM/1.14.5 (Demachiyanagi) APEL/10.6 Emacs/21.3 (i386-redhat-linux-gnu) MULE/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII Date: Thu, 23 Sep 2004 10:48:38 +0100 Message-ID: <26022.1095932918@redhat.com> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org The attached patch causes the per-user keyring to be linked into the user's default session keyring rather than the other way around. Signed-Off-By: David Howells --- process_keys.c | 24 ++++++++++++------------ 1 files changed, 12 insertions(+), 12 deletions(-) diff -uNrp linux-2.6.9-rc2-mm1/security/keys/process_keys.c linux-2.6.9-rc2-mm1-afskey/security/keys/process_keys.c --- linux-2.6.9-rc2-mm1/security/keys/process_keys.c 2004-09-16 12:09:57.000000000 +0100 +++ linux-2.6.9-rc2-mm1-afskey/security/keys/process_keys.c 2004-09-22 14:25:20.000000000 +0100 @@ -74,24 +74,24 @@ int alloc_uid_keyring(struct user_struct char buf[20]; int ret; - /* concoct a UID specific keyring */ - sprintf(buf, "_uid.%u", user->uid); + /* concoct a default session keyring */ + sprintf(buf, "_uid_ses.%u", user->uid); - uid_keyring = keyring_alloc(buf, user->uid, (gid_t) -1, 0, NULL); - if (IS_ERR(uid_keyring)) { - ret = PTR_ERR(uid_keyring); + session_keyring = keyring_alloc(buf, user->uid, (gid_t) -1, 0, NULL); + if (IS_ERR(session_keyring)) { + ret = PTR_ERR(session_keyring); goto error; } - /* and a default session keyring with a pointer to the UID specific + /* and a UID specific keyring, pointed to by the default session * keyring */ - sprintf(buf, "_uid_ses.%u", user->uid); + sprintf(buf, "_uid.%u", user->uid); - session_keyring = keyring_alloc(buf, user->uid, (gid_t) -1, 0, - uid_keyring); - if (IS_ERR(session_keyring)) { - key_put(uid_keyring); - ret = PTR_ERR(session_keyring); + uid_keyring = keyring_alloc(buf, user->uid, (gid_t) -1, 0, + session_keyring); + if (IS_ERR(uid_keyring)) { + key_put(session_keyring); + ret = PTR_ERR(uid_keyring); goto error; }