From 179f1d55d859bad68e6c61218a897578caabd56f Mon Sep 17 00:00:00 2001 From: Marc Dionne Date: Fri, 22 Jan 2010 20:03:58 -0500 Subject: [PATCH] Linux Keyrings: don't ignore error code from session keyring creation Creating a session keyring can fail, for instance if the user's keyring quotas are reached (number of keys/keyrings or data size). Instead of ignoring errors, return them so they can be passed back to the caller. FIXES 126230 Reviewed-on: http://gerrit.openafs.org/1151 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from 0caf14224a9153bb488be9e52d67892a2c441a5a) Change-Id: Ibffa5ff33f756c9365b1148448039e668d39fb92 Reviewed-on: http://gerrit.openafs.org/1581 Reviewed-by: Alistair Ferguson Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 0bec77e1f9dfdb7927926953b808603647910cc0) --- src/afs/LINUX/osi_groups.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/afs/LINUX/osi_groups.c b/src/afs/LINUX/osi_groups.c index c018dd1b4..fc82463d8 100644 --- a/src/afs/LINUX/osi_groups.c +++ b/src/afs/LINUX/osi_groups.c @@ -338,9 +338,9 @@ setpag(cred_t **cr, afs_uint32 pagvalue, afs_uint32 *newpag, #ifdef LINUX_KEYRING_SUPPORT if (code == 0) { - (void) install_session_keyring(NULL); + code = install_session_keyring(NULL); - if (current_session_keyring()) { + if (code == 0 && current_session_keyring()) { struct key *key; key_perm_t perm; @@ -362,6 +362,8 @@ setpag(cred_t **cr, afs_uint32 pagvalue, afs_uint32 *newpag, key_instantiate_and_link(key, (void *) newpag, sizeof(afs_uint32), current_session_keyring(), NULL); key_put(key); + } else { + code = PTR_ERR(key); } } } -- 2.39.5