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 <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from
0caf14224a9153bb488be9e52d67892a2c441a5a)
Change-Id: Ibffa5ff33f756c9365b1148448039e668d39fb92
Reviewed-on: http://gerrit.openafs.org/1581
Reviewed-by: Alistair Ferguson <alistair.ferguson@mac.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit
0bec77e1f9dfdb7927926953b808603647910cc0)
#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;
key_instantiate_and_link(key, (void *) newpag, sizeof(afs_uint32),
current_session_keyring(), NULL);
key_put(key);
+ } else {
+ code = PTR_ERR(key);
}
}
}