diff options
Diffstat (limited to 'security/keys/process_keys.c')
-rw-r--r-- | security/keys/process_keys.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/security/keys/process_keys.c b/security/keys/process_keys.c index 4ad54eea1ea4..c9b07c97d7f2 100644 --- a/security/keys/process_keys.c +++ b/security/keys/process_keys.c | |||
@@ -837,9 +837,10 @@ error: | |||
837 | void key_change_session_keyring(struct task_work *twork) | 837 | void key_change_session_keyring(struct task_work *twork) |
838 | { | 838 | { |
839 | const struct cred *old = current_cred(); | 839 | const struct cred *old = current_cred(); |
840 | struct cred *new = twork->data; | 840 | struct kludge *p = container_of(twork, struct kludge, twork); |
841 | struct cred *new = p->cred; | ||
841 | 842 | ||
842 | kfree(twork); | 843 | kfree(p); |
843 | if (unlikely(current->flags & PF_EXITING)) { | 844 | if (unlikely(current->flags & PF_EXITING)) { |
844 | put_cred(new); | 845 | put_cred(new); |
845 | return; | 846 | return; |