Set cred->user_ns in key_replace_session_keyring
authorSerge E. Hallyn <serge@hallyn.com>
Thu, 26 May 2011 20:25:05 +0000 (15:25 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 3 Jun 2011 00:32:33 +0000 (09:32 +0900)
commit82ce79999abf4899b10481209db7f0af8057a561
tree88b73381135250bafc3a1cba1468f53ae1b412ae
parent39b4e54266a625a141dac11c7bd22729b00c94d7
Set cred->user_ns in key_replace_session_keyring

commit f7285b5d631fd6096b11c6af0058ed3a2b30ef4e upstream.

Since this cred was not created with copy_creds(), it needs to get
initialized.  Otherwise use of syscall(__NR_keyctl, KEYCTL_SESSION_TO_PARENT);
can lead to a NULL deref.  Thanks to Robert for finding this.

But introduced by commit 47a150edc2a ("Cache user_ns in struct cred").

Signed-off-by: Serge E. Hallyn <serge.hallyn@canonical.com>
Reported-by: Robert Święcki <robert@swiecki.net>
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
security/keys/process_keys.c