Merge tag 'keys-misc-20190619' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowe...
[sfrench/cifs-2.6.git] / security / keys / process_keys.c
index 0b9406bf60e571bd088fafc48ee7c8abb7809583..a40b3361420871aa2af0145c56f18c88e347d753 100644 (file)
@@ -289,28 +289,26 @@ static int install_session_keyring(struct key *keyring)
 /*
  * Handle the fsuid changing.
  */
-void key_fsuid_changed(struct task_struct *tsk)
+void key_fsuid_changed(struct cred *new_cred)
 {
        /* update the ownership of the thread keyring */
-       BUG_ON(!tsk->cred);
-       if (tsk->cred->thread_keyring) {
-               down_write(&tsk->cred->thread_keyring->sem);
-               tsk->cred->thread_keyring->uid = tsk->cred->fsuid;
-               up_write(&tsk->cred->thread_keyring->sem);
+       if (new_cred->thread_keyring) {
+               down_write(&new_cred->thread_keyring->sem);
+               new_cred->thread_keyring->uid = new_cred->fsuid;
+               up_write(&new_cred->thread_keyring->sem);
        }
 }
 
 /*
  * Handle the fsgid changing.
  */
-void key_fsgid_changed(struct task_struct *tsk)
+void key_fsgid_changed(struct cred *new_cred)
 {
        /* update the ownership of the thread keyring */
-       BUG_ON(!tsk->cred);
-       if (tsk->cred->thread_keyring) {
-               down_write(&tsk->cred->thread_keyring->sem);
-               tsk->cred->thread_keyring->gid = tsk->cred->fsgid;
-               up_write(&tsk->cred->thread_keyring->sem);
+       if (new_cred->thread_keyring) {
+               down_write(&new_cred->thread_keyring->sem);
+               new_cred->thread_keyring->gid = new_cred->fsgid;
+               up_write(&new_cred->thread_keyring->sem);
        }
 }
 
@@ -686,9 +684,7 @@ try_again:
                key_ref = make_key_ref(key, 0);
 
                /* check to see if we possess the key */
-               ctx.index_key.type              = key->type;
-               ctx.index_key.description       = key->description;
-               ctx.index_key.desc_len          = strlen(key->description);
+               ctx.index_key                   = key->index_key;
                ctx.match_data.raw_data         = key;
                kdebug("check possessed");
                skey_ref = search_process_keyrings(&ctx);